2017-01-20 50 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

由於昆汀&博佩爾森他們對此事的意見。