是否可以让一个类的boost::optional调用其成员函数?
我尝试使用boost optional,效果不错,但我找不到调用包装类型的成员函数的方法。这是故意的还是故意的?我想是这样,因为调用unitialized boost::optional变量的成员func是不好的,但我想100%确定是否可以让一个类的boost::optional调用其成员函数?,boost,optional,Boost,Optional,我尝试使用boost optional,效果不错,但我找不到调用包装类型的成员函数的方法。这是故意的还是故意的?我想是这样,因为调用unitialized boost::optional变量的成员func是不好的,但我想100%确定 class test { int test_method() { return 1984; } }; test tst; boost::optional<test> get_test() { boost::
class test
{
int test_method()
{
return 1984;
}
};
test tst;
boost::optional<test> get_test()
{
boost::optional<test> result(tst);
return result;
}
// main
boost::optional <test> ret_val= get_test();
int x=ret_val.test_method();
类测试
{
int test_方法()
{
返回1984年;
}
};
测试tst;
boost::可选的get_测试()
{
boost::可选结果(tst);
返回结果;
}
//主要
boost::可选ret_val=get_test();
int x=返回值测试方法();
'class boost::optional ANGLE_BRACKET test ANGLE_BRACKET'没有名为'test_method'的成员
尝试使用
ret\u val->test\u method()
operator->
可以访问boost::optional
中包含的对象。请注意,在执行此操作之前,您需要确保可选不是空的。尝试使用ret\u val->test\u method()
operator->
可以访问boost::optional
中包含的对象。请注意,在执行此操作之前,您需要确保可选部分不为空。它可以工作,但是这个->部分让我感到困惑,您如何访问例如->第二个boost::可选部分?(*ret_val)->第二个或ret_val.get()->第二个它可以工作,但是这个->部分让我困惑,例如,您将如何访问->第二个boost::optional?(*ret_val)->第二个
或ret_val.get()->第二个