使用{}作为默认参数参数类型

时间:2019-02-04 21:45:15

标签: c++ templates

我想知道这个模板是如何工作的。为什么我们使用T{}初始化模板参数?

template<typename T, T Val = T{}>
T bar();

1 个答案:

答案 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?