我正在尝试学习C ++ 17的新功能。
请找到以下代码:
class Test
{
public:
Test(int x):y(x){}
~Test(){}
int getx()
{
return x;
}
private:
int x;
};
struct Container
{
std::optional<Test> test;
};
int main()
{
struct Container obj;
// here i want to initialize the member "test" of
// struct Container
obj.test = make_optional<Test>(10); ----> is this correct??
}
有人可以告诉我如何初始化std::optional
吗?例如,如果我声明它:
std::optional<Test> t
如何初始化它?
答案 0 :(得分:3)
obj.test = make_optional<Test>(10);
----&GT;这是正确的吗?
是的。你也可以这样做:
obj.test = Test(10);