c – 类方法类型的decltype

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

这似乎有效:

class Foo
{
public: 
   Foo(int) {} //non default constructor that hides default constructor
   unspecified_return_type get_value();


};

class Bar
{
    // stores a value returned by Foo::get_value
    decltype(Foo().get_value()) value;
};

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

解决方法

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

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