この関数は正常に機能します。
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
、ぶら下がっている右辺値参照を避けていますか?