C++ 连接字符和字符串文字

C++ 连接字符和字符串文字,c++,string,c++11,char,concatenation,C++,String,C++11,Char,Concatenation,我的问题是: error_print(argv[0],“选项无效--”不能将+用于文字字符串和单个字符,但可以将其用于std::string,所以请使用 "invalid option -- '" + std::string(1, optopt) + "'" 如果您的编译器足够新(草案C++14): 此功能可以添加到C++11,因为它具有语言支持,(标准库直到C++14才提供s文本) “我也不能使用+”-但是操作符+是C++11的一部分,那么为什么不呢?@H2CO3更新错误发生在++@0x49

我的问题是:


error_print(argv[0],“选项无效--”不能将+用于文字字符串和单个字符,但可以将其用于std::string,所以请使用

"invalid option -- '" + std::string(1, optopt) + "'"

如果您的编译器足够新(草案C++14):

此功能可以添加到C++11,因为它具有语言支持,(标准库直到C++14才提供
s
文本)


“我也不能使用+”-但是
操作符+
是C++11的一部分,那么为什么不呢?@H2CO3更新错误发生在
++
@0x499602D2这不会发生work@Paranaix哎呀。谢谢你指出这一点。只是一个小提示:这段代码接近于一个模糊的运行时崩溃:
“whatever”+(char)optopt
隐式地将
optopt
转换为数组索引。将第一个操作数转换为字符串可能更清晰:
std::string(“无效选项--'”)+(char)optoptopt+“”
—这不依赖于
optopt
的类型,似乎是一个更通用的解决方案
"invalid option -- '" + std::string(1, optopt) + "'"
"invalid option -- '"s + char(optopt) + "'"s
std::string operator "" s(const char* str, std::size_t len)
{
    return {str,len};
}