成员函数的 decltype
decltype for member functions
如何在
以下示例中获取成员函数的返回类型?
template <typename Getter>
class MyClass {
typedef decltype(mygetter.get()) gotten_t;
...
};
当然,问题是我在定义MyClass时没有"mygetter"对象。
我想做的是:我正在创建一个缓存,它可以使用getter返回的任何内容,因为它是关键。
我不太确定你想要什么,但似乎mygetter
应该只是任何 Getter
类型的对象。使用 std::declval
获取这样的对象,无需任何其他内容(只能将其用于类型推断)
typedef decltype(std::declval<Getter>().get()) gotten_t;
相关文章:
- 如何从"decltype()"获取函数参数的数量<funtion>?
- 非静态成员函数的 decltype 格式不正确吗?
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 使用具有默认参数的函数模板进行 decltype 会使结果混乱(一个有趣的问题或 gcc 的错误)
- 指向具有 decltype 的函数的指针向量
- 是否可以获取将根据 ADL 调用的函数的 decltype?
- 元函数使用 decltype 返回元素类型
- 使用 decltype(this) 获取函数引用
- 如何使用非尾随 decltype 返回类型定义行外类模板成员函数
- 在非常量成员函数中,为什么点这个非常量,而 decltype 指针这是常量
- 静态断言 std::array 的大小,其类型是使用 decltype 从成员函数的返回值中获取的
- 使用自动>decltype方法显式实例化函数
- 模板函数的返回类型未知,使用 decltype 时代码重复
- 使用 decltype 显式析构函数调用
- GCC 中的编译器错误,但在将 decltype 与具有尾随返回类型语法的模板化成员函数一起使用时没有 clang
- 类内定义函数的 decltype 推导结果
- 为什么 decltype 不能使用重载函数?
- 如何将 decltype 应用于运算符 [] 声明中的成员函数
- 是否允许在 std::d eclval 上使用 decltype<T>(函数本身,而不是调用它的结果)?
- c++ 11 -使用decltype函数指针有什么问题?