提问人:zeronull 提问时间:3/11/2023 最后编辑:dbushzeronull 更新时间:3/11/2023 访问量:78
将 const std::string& str = “” 作为函数的默认参数是否安全?
Is it safe to do const std::string& str = "" as default param for a function?
问:
struct StrHolder {
std::string str;
StrHolder(const std::string& _str = "")
{
str = _str;
}
};
简单的问题,这安全吗??
只是一个问题,检查上面的代码。
答:
1赞
Some programmer dude
3/11/2023
#1
如果您不确定,我建议改为重载:
StrHolder() = default;
StrHolder(const std::string& str)
: str(str)
{
}
这样就没有歧义了。
0赞
Remy Lebeau
3/11/2023
#2
简单的问题,这安全吗??...我想知道这是否可以调用 UB
它是完全安全的,并且不会调用未定义的行为。
评论