未知模板类型的默认值或零值 [英] Default or zero value of unknown template type
本文介绍了未知模板类型的默认值或零值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设模板功能
template<typename T>
T foo(){
// ...
// Error occured
if(error)
return 0;
// ...
}
应返回 0
, 0.0f
, nullptr
,...,具体取决于类型 T
,发生错误时.
which should return 0
, 0.0f
, nullptr
, ... depending on the type T
, when an error occured.
如何获取未知模板类型的 0
?在C#中,您可以编写 default(T)
来完成此操作.
How to get the 0
of a unknown template type?
in C# you can write default(T)
to do this.
如何在C ++中执行此操作?
How to perform this in C++?
推荐答案
您可以使用值初始化,例如 return T();
或 return T {};
(自C ++ 11起),或者只是 return {}; 代码>(请参见列表初始化(自C ++ 11起))以返回
T
的默认值.
You can use value initialization like return T();
or return T{};
(since C++11), or just return {};
(see list initialization (since C++11)) to return the default value of T
.
这篇关于未知模板类型的默认值或零值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文