默认情况下,从getter函数返回副本(1)或引用(2)会更好吗?
class foo {
public:
std::string str () { // (1)
return str_;
}
const std::string& str () { // (2)
return str_;
}
private:
std::string str_;
};
Run Code Online (Sandbox Code Playgroud)
我知道2)可能更快,但不必因(N)RVO.1)关于悬挂引用更安全,但对象可能会过时或永远不会存储引用.
当你写一个课程时,你的默认值是什么,而且还不知道(但)性能和生命周期问题是否重要?
附加问题:当成员不是普通字符串而是向量时,游戏会改变吗?
我正在寻找一种方法来识别模板类定义中的基元类型.
我的意思是,有这个课:
template<class T>
class A{
void doWork(){
if(T isPrimitiveType())
doSomething();
else
doSomethingElse();
}
private:
T *t;
};
Run Code Online (Sandbox Code Playgroud)
有没有办法"实现"isPrimitiveType().