假设模板功能
template<typename T>
T foo(){
// ...
// Error occured
if(error)
return 0;
// ...
}
当发生错误时,应该返回0
,0.0f
,nullptr
,...,具体取决于类型T
。
如何获取未知模板类型的0
?
在C#中,您可以编写default(T)
来执行此操作。
如何在C ++中执行此操作?
答案 0 :(得分:6)
您可以return T();
使用return T{};
或return {};
(自C ++ 11开始),或只使用T
(请参阅value initialization)返回默认值价值Baddie
。