我想知道这个模板是如何工作的。为什么我们使用T{}
初始化模板参数?
template<typename T, T Val = T{}>
T bar();
答案 0 :(得分:3)
花括号是list initialization,在C ++ 11中引入。
value-initializes为模板参数Val
,模板类型为T
。
您也可以做得很好:
template<typename T, T Val = T()>
T bar();
有关优点和缺点,请参见:Why is list initialization (using curly braces) better than the alternatives?