c – 类方法类型的decltype

前端之家收集整理的这篇文章主要介绍了c – 类方法类型的decltype前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将类成员函数的返回值存储在另一个类中.

这似乎有效:

  1. class Foo
  2. {
  3. public:
  4. Foo(int) {} //non default constructor that hides default constructor
  5. unspecified_return_type get_value();
  6.  
  7.  
  8. };
  9.  
  10. class Bar
  11. {
  12. // stores a value returned by Foo::get_value
  13. decltype(Foo().get_value()) value;
  14. };

但是,有一个类Foo的默认构造函数的引用,在某些情况下可能没有定义.有没有办法在没有明确引用任何构造函数的情况下执行此操作?

解决方法

是的,有.因为这个原因引入了 std::declval(不需要依赖于特定的构造函数):
  1. decltype(std::declval<Foo>().get_value()) value;

猜你在找的C&C++相关文章