T.68: Use {} rather than () within templates to avoid ambiguities
T.68:在模板中使用{}代替()以避免歧义
() is vulnerable to grammar ambiguities.
()容易产生语法歧义。
Example(示例)
template<typename T, typename U>
void f(T t, U u)
{
T v1(x); // is v1 a function or a variable?
T v2 {x}; // variable
auto x = T(u); // construction or cast?
}
f(1, "asdf"); // bad: cast from const char* to int