未知模板类型的默认值或零值

时间:2016-06-26 13:17:14

标签: c++ templates default default-value

假设模板功能

template<typename T>
T foo(){
  // ...
  // Error occured
  if(error)
     return 0;
  // ...
}

当发生错误时,应该返回00.0fnullptr,...,具体取决于类型T

如何获取未知模板类型的0? 在C#中,您可以编写default(T)来执行此操作。

如何在C ++中执行此操作?

1 个答案:

答案 0 :(得分:6)

您可以return T();使用return T{};return {};(自C ++ 11开始),或只使用T(请参阅value initialization)返回默认值价值Baddie