6

在以下示例中,如何获取成员函数的返回类型?

template <typename Getter>
class MyClass {
   typedef decltype(mygetter.get()) gotten_t;
 ...
};

当然,问题是我在定义 MyClass 时没有“mygetter”对象。

我想要做的是:我正在创建一个缓存,它可以使用 getter 返回的任何内容,因为它是关键。

4

1 回答 1

11

我不太确定你想要什么,但它似乎mygetter应该只是任何类型的对象Getter。用于std::declval获取这样的对象,无需其他任何东西(只能用于类型推导)

typedef decltype(std::declval<Getter>().get()) gotten_t;
于 2012-04-13T17:30:16.547 回答