возможно ли иметь boost :: option класса и вызывать его функции-члены? - PullRequest
1 голос
/ 02 марта 2012

Я пытался использовать опцию boost по желанию, и она работает хорошо, но я не могу найти способ вызова функций-членов упакованного типа. Это дизайн или? Я так думаю, потому что вызывать функции-члены унитарной переменной boost :: option было бы плохо, но я хочу быть уверен на 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();

boost повышение класса :: необязательный тест ANGLE_BRACKET ANGLE_BRACKET ’не имеет члена с именем‘ test_method ’

1 Ответ

1 голос
/ 02 марта 2012

Попробуйте использовать ret_val->test_method() вместо этого; operator-> может получить доступ к содержанию объекта в boost::optional. Обратите внимание, что вы должны убедиться, что optional не пусто, прежде чем сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...