我正在尝试尽可能使用 std::string
而不是 char*
,但我担心我可能会过度降低性能。这是返回字符串的好方法吗(为简洁起见没有错误检查)?
std::string linux_settings_provider::get_home_folder() {
return std::string(getenv("HOME"));
}
另外,一个相关的问题:当接受字符串作为参数时,我应该将它们作为 const std::string&
还是 const char*
接收?
谢谢。
最佳答案
返回字符串。
我认为更好的抽象是值得的。在您能够测量出有意义的性能差异之前,我认为这是一种只存在于您的想象中的微观优化。
花了很多年才将良好的字符串抽象到 C++ 中。我不相信 Bjarne Stroustroup 以他保守的“只为你使用的东西付费”的格言而闻名,他不会允许一个明显的性能 killer 进入语言。更高的抽象是好的。
关于c++ - 我应该返回 std::strings 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1032243/