cpp: error: 'class boost::optional<std::__cxx11::basic_string<char> >' has no member named 'c_str'
cpp: error: 'class boost::optional<std::__cxx11::basic_string<char> >' has no member named 'c_str'
我是 c++ 的新手,正在尝试解决我的函数中的问题 -
Test::Test(const boost::optional<std::string>& 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());
^
请帮助修复我的代码
mName
成员属于 optional
类型。如果你想要optional
后面的字符串,你需要用类似的东西取消引用它:
i = system(mName->c_str());
当然,您可能希望首先确保它具有一个值:
if (mName) i = system(mName->c_str());
我是 c++ 的新手,正在尝试解决我的函数中的问题 -
Test::Test(const boost::optional<std::string>& 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());
^
请帮助修复我的代码
mName
成员属于 optional
类型。如果你想要optional
后面的字符串,你需要用类似的东西取消引用它:
i = system(mName->c_str());
当然,您可能希望首先确保它具有一个值:
if (mName) i = system(mName->c_str());