在C++中初始化类的静态数组成员的更好方法(虽然const是首选)

Pet*_*uza 0 c++ static-initializer static-initialization static-array

我有一个指向函数的静态数组指针作为类的成员.

我需要对它进行初始化,但事实证明这个数组的长度是64K项,因此使用静态初始化器初始化它是不切实际的,就像{ x, y, z, ... }它会使代码混乱一样.

我反而用代码初始化它,有几个循环.

我想要这样做的方法是static在构造函数中初始化数组并为其设置一个标志,因此只有该类的第一个实例的构造才会触发此初始化.

从实例中访问这个静态标志也不是线程安全的,但这是另一个故事.

有更干净或更好的方法吗?

我也想要这个数组const,但我担心唯一的方法就是static {}初始化,对吗?

cel*_*chk 6

另一种选择是使用代码生成:编写一个单独的程序,生成静态数组定义的源代码.