我需要一个模板函数,它为传递的参数
分配一个默认值template <class T> inline T GetDefault()
{
return ???? # default value
}
T
可以bool
,int
,double
和string
。
谢谢。
答案 0 :(得分:8)
默认值(即使是基本类型)应该是默认的“构造函数”:
template <class T> inline void SetDefault( T& value )
{
value = T();
}
例如,基于int的类型默认为0(因为显式初始化)。
这显然不适用于没有默认值的类型,比如没有默认构造函数的类的对象。
答案 1 :(得分:7)
您可以使用return T();
请注意,这也可用于为模板类型的参数提供默认值:
template<class T>
void foo(const T &t, const T &tWithDefaultValue = T())
{
/* ... */
}
答案 2 :(得分:5)
template <class T> inline T GetDefault()
{
return T();
}