Vin*_*ent 5 c++ initialization zero c++11
在C++ 11中,有没有办法将算术类和类类型的值初始化为零(算术类型的运行时绝对没有开销)?
template<typename T> void myFunction(T& x)
{
x = 0; // How to make this works for T = double but also for T = std::string ?
}
Run Code Online (Sandbox Code Playgroud)
Som*_*ude 10
您可以使用默认构造函数"清除"变量:
template<class T>
void clear(T &v)
{
v = T();
}
Run Code Online (Sandbox Code Playgroud)
这适用于所有基本类型,指针和类型,它们具有默认构造函数和赋值运算符(默认情况下所有类都将具有,除非被告知,或者它们被保护/私有).
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |