未知模板类型的默认值或零值
Posted
技术标签:
【中文标题】未知模板类型的默认值或零值【英文标题】:Default or zero value of unknown template type 【发布时间】:2016-10-28 13:49:54 【问题描述】:假设模板函数
template<typename T>
T foo()
// ...
// Error occured
if(error)
return 0;
// ...
当发生错误时,它应该返回0
、0.0f
、nullptr
,...取决于T
的类型。
如何获取未知模板类型的0
?
在 C# 中,您可以编写 default(T)
来执行此操作。
如何在 C++ 中执行此操作?
【问题讨论】:
【参考方案1】:您可以像return T();
或return T;
(C++11 起)一样使用value initialization,或者只使用return ;
(参见list initialization (since C++11))来返回默认值T
。
【讨论】:
你更喜欢哪一个? @Matthiasreturn T();
和 return T;
在这里具有相同的效果,对我来说看起来都不错。 return ;
是最短的,你可能想用它。以上是关于未知模板类型的默认值或零值的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 基本语法 — 常量与变量 — 变量的类型零值