当我尝试编译foo类时,编译器将给出一个错误:“静态数据成员的类内初始化程序不是常量表达式。”
class foo
{
static constexpr int c(int i) { return i * i; };
static const int m = 2;
static const int n = c(m);
int a[n];
};
为什么c(m)
不算作常量表达式?在这种情况下,有没有办法“链接” constexpr函数?
我要实现的目标是使用一个函数定义a
数组的大小。