void doStuff( std::string const & s1, std::string const & s2="");
我想知道这段代码在C++中对于s2字符串是否合法。我希望有一个默认参数,但传递一个引用,并将一个空字符串作为缺省值。是创建一个临时的,引用将指向该临时的,还是非法的C++?
发布于 2015-09-29 18:43:22
会更好
void doStuff( std::string const & s1, std::string const & s2 = std::string());
以避免额外的临时const char *
。(您的变体有两个临时变量:const char *
和空std::string
)。
或者,使用用户定义的文字(C++14):
void doStuff( std::string const & s1, std::string const & s2 = ""s);
https://stackoverflow.com/questions/19808749
复制相似问题