Mar*_*rek 5 c++ arrays static templates
我有一段C++代码:
template <typename WorkType, int Degree = 2> class PolynomialFunction {
public:
static constexpr int kNumberCoefficients[] = { 0, 3, 6, 10, 15 };
static const int kPolyDimension = kNumberCoefficients[Degree];
...
private:
WorkType polynom_[kPolyDimension];
...
Run Code Online (Sandbox Code Playgroud)
哪个编译好之前但突然(可能是新的编译器)它失败并出现以下错误:
./polynomial_function.h:实例化'constexpr const int PolynomialFunction :: kNumberCoefficients []':
./ polynomial_function.h:84:56:需要'const int PolynomialFunction :: kPolyDimension'
./polynomial_function.h : 309: 35 :需要来自'class PolynomialFunction'
./segment.h:
321:17:从这里需要 ./polynomial_function.h:83:24:错误:初始化程序无法确定'PolynomialFunction :: kNumberCoefficients'的
大小./polynomial_function.h: 83:24:error:数组必须用大括号括起来的初始化器初始化
./polynomial_function.h:在'class PolynomialFunction'的实例化中:
./ segment.h:321:17:从这里需要
顺便说一句.第83行是'kNumberCoefficients'的声明,第309行是'polynom_'的声明.任何想法为什么失败?谢谢.
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |