此功能工作正常:
std::string get_str() {
return std::get<0>( make_tuple(std::string("hi")) );
}
但是,如果您尝试使用定义的尾随返回类型做同样的事情decltype
,该函数将返回一个悬空的右值引用:
auto get_str() -> decltype( std::get<0>( make_tuple(std::string("hi")) ) ) {
return std::get<0>( make_tuple(std::string("hi")) );
}
我有一个很酷的尾随返回类型应用程序,我想在其中使用std::get
. 不幸的是,在这种情况下,返回类型std::get
是一个右值引用,所以decltype
只是在做它的工作......
你知道一种使用尾随返回类型decltype
但避免悬空右值引用的方法吗?