Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次の例でメンバー関数の戻り値の型を取得するにはどうすればよいですか?
template <typename Getter> class MyClass { typedef decltype(mygetter.get()) gotten_t; ... };
もちろん、問題は、MyClass を定義するときに「mygetter」オブジェクトがないことです。
私がやろうとしているのは、ゲッターから返されたものをキーとして使用できるキャッシュを作成していることです。
あなたが何を望んでいるのかよくわかりませんが、mygetter単に type の任意のオブジェクトであると思われますGetter。そのようなオブジェクトを取得するために使用std::declvalします (型推論にのみ使用できます)。
mygetter
Getter
std::declval
typedef decltype(std::declval<Getter>().get()) gotten_t;