2017-01-20 54 views
1

假设我有一个功能,例如:如何声明在函数作用域中定义的结构?

auto get_struct() { 
    struct foo { 
    int x; 
    }; 

    return foo{2}; 
} 

我可以访问和使用foo这样:

decltype(get_struct()) fooDecl; 
auto x_val = get_struct().x; 

是否有可能定义fooDecl不使用decltype?如果是的话,语法会是什么样子?

+1

我不认为除了'decltype'之外还有其他方法。 – user2079303

+0

我猜这意味着在C++ 03中声明'fooDecl'是不可能的? – crezefire

+0

您具体针对哪种标准?目前这种情况正在发生很大的变化。 – Bathsheba

回答

0

所以事实证明,这是不可能的声明fooDecl没有decltype和无法预C++ 11

由于昆汀&博佩尔森他们对此事的意见。