C++ 全局常量定义的变量模板语法

C++ 全局常量定义的变量模板语法,c++,templates,c++14,one-definition-rule,variable-templates,C++,Templates,C++14,One Definition Rule,Variable Templates,C++14定义某种类型的全局常数x的方法是: struct X { int i; char c; }; template< typename = void > X const x_impl{1, 'x'}; static X const & x = x_impl<>; 那么,在你的例子中,你指的是哪个aaa?@Synxis当然,类似于空函数的情况(如问题中已经说明的)a应该指a其中,…是默认值(或非类型参数的默认值)。这很有意义。我想最好的地方是对ISOCPP论

C++14定义某种类型的全局常数
x
的方法是:

struct X { int i; char c; };
template< typename = void >
X const x_impl{1, 'x'};
static X const & x = x_impl<>;

那么,在你的例子中,你指的是哪个
a
<代码>a
a
?@Synxis当然,类似于空函数的情况(如问题中已经说明的)
a
应该指
a<…>其中,
是默认值(或非类型参数的默认值)。这很有意义。我想最好的地方是对ISOCPP论坛有一些答案,那里有众多C++成员,这里有一个论坛列表:我想你可以在以后的提案中发表……嗯,在你的例子中,
a
是指哪个<代码>a
a
?@Synxis当然,类似于空函数的情况(如问题中已经说明的)
a
应该指
a<…>其中,
是默认值(或非类型参数的默认值)。这很有意义。我想最好的地方是对ISOCPP论坛有一些答案,那里有众多C++成员,这里有一个论坛列表:我想你可以在未来的提案中发布……嗯,

template< typename T >
void f(T) {}

template< typename T = void >
void g() {}

// ...
f< int >(1);
f<>(1);
f(2); // also valid
g<>();
g(); // also valid
template< int = 0 >
A const a{1, 'a'};
std::cout << &a << std::endl; // odr-using