未知模板类型的默认值或零值
Default or zero value of unknown template type
假设模板函数
template<typename T>
T foo(){
// ...
// Error occured
if(error)
return 0;
// ...
}
哪个应该 return 0
, 0.0f
, nullptr
, ... 取决于类型 T
,当发生错误时。
如何获取未知模板类型的0
?
在 C# 中,您可以编写 default(T)
来执行此操作。
如何在 C++ 中执行此操作?
可以使用value initialization like return T();
or return T{};
(since C++11), or just return {};
(see list initialization (since C++11))来return默认值T
。
假设模板函数
template<typename T>
T foo(){
// ...
// Error occured
if(error)
return 0;
// ...
}
哪个应该 return 0
, 0.0f
, nullptr
, ... 取决于类型 T
,当发生错误时。
如何获取未知模板类型的0
?
在 C# 中,您可以编写 default(T)
来执行此操作。
如何在 C++ 中执行此操作?
可以使用value initialization like return T();
or return T{};
(since C++11), or just return {};
(see list initialization (since C++11))来return默认值T
。