6
次の例では、メンバー関数の戻り値の型を取得するにはどうすればよいですか?メンバー関数の宣言型
template <typename Getter>
class MyClass {
typedef decltype(mygetter.get()) gotten_t;
...
};
問題は、もちろん、MyClassを定義する際に「mygetter」オブジェクトがないことです。
私がしようとしているのは、ゲッターが返すものをキーとして使用できるキャッシュを作成しています。
(あなたが唯一の型推論のためにそれを使用することができます)他に何もせずにそのようなオブジェクトを取得するために
std::declval
を使用してください。それは素晴らしいです!私はいつも 'Getter()。get()'を使い、 'Getter'はデフォルトで構築可能であると仮定しました。 –