gpt4 book ai didi

c++ - 类方法类型的 decltype

转载 作者:可可西里 更新时间:2023-11-01 18:25:26 25 4
gpt4 key购买 nike

我想将类成员函数的返回值存储在另一个类中。

这似乎可行:

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++ - 类方法类型的 decltype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25621179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com