如果m_attr.GetValue()返回一个CString,那么:
为什么以下代码无错误消息...只有警告消息' C4927'?
std::string sigCncDialog::GetSignalAttributeValue()
{return m_attr.GetValue();}
正确的当然是:
std::string sigCncDialog::GetSignalAttributeValue()
{return m_attr.GetValue().GetString();}
答案 0 :(得分:1)
因为两个罪恶:
CString
有conversion operator允许隐式转换为C风格的字符指针CString -> const char* -> std::string
,只包含您提到的warning,即使标准C ++禁止这样的转换