Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;带模板参数的支撑初始化_C++_Templates - Fatal编程技术网

C++ C++;带模板参数的支撑初始化

C++ C++;带模板参数的支撑初始化,c++,templates,C++,Templates,我几乎可以肯定这个问题在什么地方得到了回答,但我找不到,所以我就问一下 编撰精良 template <int SIZE, unsigned int NUMSYNC> class MyClass{ private: std::uniform_int_distribution<int> randomNumberDistribution{ 0, SIZE }; } 模板 类MyClass{ 私人: 均匀分布随机数分布{0,SIZE}; } 不编译(常量大小不是类型名

我几乎可以肯定这个问题在什么地方得到了回答,但我找不到,所以我就问一下

编撰精良

template <int SIZE, unsigned int NUMSYNC>
class MyClass{
private:
    std::uniform_int_distribution<int> randomNumberDistribution{ 0, SIZE };
}
模板
类MyClass{
私人:
均匀分布随机数分布{0,SIZE};
}
不编译(常量大小不是类型名称)

模板
类MyClass{
私人:
标准:均匀分布随机数分布(0,大小);
}
我试图理解其中的区别,以及为什么大括号初始化可以工作,而不是传统的初始化


我使用C++14编译这是由于标准中的定义。否则,编译器在解析代码时可能无法将其与成员函数声明区分开来

2) 通过默认成员初始值设定项,该初始值设定项是成员声明中包含的大括号或等于初始值设定项,如果从构造函数的成员初始值设定项列表中省略该成员,则使用该初始值设定项。 (我强调)


当询问有关导致生成错误的代码的问题时,请在问题中包含完整的错误输出(复制粘贴为文本)。这与模板无关<代码>(…)对于默认成员初始值设定项根本不起作用,可能是因为很难区分方法声明。为了避免在最麻烦的解析中重复错误。
template <int SIZE, unsigned int NUMSYNC>
class MyClass{
private:
    std::uniform_int_distribution<int> randomNumberDistribution( 0, SIZE );
}