是否可以让一个类的boost::optional调用其成员函数?

是否可以让一个类的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::

我尝试使用boost optional,效果不错,但我找不到调用包装类型的成员函数的方法。这是故意的还是故意的?我想是这样,因为调用unitialized boost::optional变量的成员func是不好的,但我想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();
类测试
{
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()->第二个