繁体   English   中英

cpp:错误:'类提升::可选<std::__cxx11::basic_string<char> &gt;' 没有名为 'c_str' 的成员</std::__cxx11::basic_string<char>

[英]cpp: error: 'class boost::optional<std::__cxx11::basic_string<char> >' has no member named 'c_str'

我是 c++ 的新手,并试图解决我的 function 中的问题 -

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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM