我尝试使用 boost optional 并且效果很好,但是我找不到调用包装类型的成员函数的方法。这是设计的还是?我猜是因为调用未初始化的 boost::optional 变量的成员函数会很糟糕,但我想 100% 确定。
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();
“class boost::optional ANGLE_BRACKET test ANGLE_BRACKET”没有名为“test_method”的成员</p>