#c #boost
#c #повышение
Вопрос:
Я новичок в c и пытаюсь исправить проблему в моей функции —
Test::Test(const boost::optional<std::string>amp; name):
mName(name)
{
...
Some statements
...
}
int Test::setResult()
{
...
i=system(mName.c_str())
...
}
Ошибка, которую я получаю, такова
error: 'class boost::optional<std::__cxx11::basic_string<char> >' has no member named 'c_str'
i=system(mName.c_str());
^
Пожалуйста, помогите исправить мой код
Ответ №1:
mName
Элемент имеет optional
тип. Если вам нужна строка, стоящая за этим optional
, вам нужно разыменовать ее с помощью чего-то вроде:
i = system(mName->c_str());
Конечно, вы, вероятно, захотите сначала убедиться, что у него есть значение:
if (mName) i = system(mName->c_str());