假设模板功能
template<typename T>
T foo(){
// ...
// Error occured
if(error)
return 0;
// ...
}
发生错误时,应根据
0
类型返回0.0f
,nullptr
,T
,...。如何获取未知模板类型的
0
?在C#中,您可以编写
default(T)
来做到这一点。如何在C++中执行此操作?
最佳答案
您可以使用value initialization(例如return T();
或return T{};
(自C++ 11起)),也可以仅使用return {};
(请参见list initialization (since C++11))来返回T
的默认值。