const int,成员数组大小
const int, member array size
我的代码基本上是:
class myclass : public singleton<myclass> {
public:
myclass();
private:
const float myfloat = 6000.0f;
const int sz_arr = (int)myfloat;
int arr[sz_arr]; // compiler complains about this line
};
需要在编译时创建arr
。 arr
的大小在编译时已知!应该根据 myfloat
值计算。如何实现?此外,myclass
是单例,只会创建它的一个实例。
首先,sz_arr
不能用来指定数组的大小,需要做成static
。并将 myfloat
标记为 constexpr
以使其在编译时已知(对于 sz_arr
也更好)。
class myclass : public singleton<myclass> {
public:
myclass();
private:
constexpr static float myfloat = 6000.0f;
constexpr static int sz_arr = myfloat; // implicit conversion is enough
int arr[sz_arr];
};
我的代码基本上是:
class myclass : public singleton<myclass> {
public:
myclass();
private:
const float myfloat = 6000.0f;
const int sz_arr = (int)myfloat;
int arr[sz_arr]; // compiler complains about this line
};
需要在编译时创建arr
。 arr
的大小在编译时已知!应该根据 myfloat
值计算。如何实现?此外,myclass
是单例,只会创建它的一个实例。
首先,sz_arr
不能用来指定数组的大小,需要做成static
。并将 myfloat
标记为 constexpr
以使其在编译时已知(对于 sz_arr
也更好)。
class myclass : public singleton<myclass> {
public:
myclass();
private:
constexpr static float myfloat = 6000.0f;
constexpr static int sz_arr = myfloat; // implicit conversion is enough
int arr[sz_arr];
};