可以在编译时定义静态数组如下:
const std::size_t size = 5;
unsigned int list[size] = { 1, 2, 3, 4, 5 };
问题1 -是否可以通过使用各种元编程技术在编译时以“编程方式”分配这些值?
问题2 -假设数组中的所有值都是相同的条数,是否有可能在编译时以编程方式选择性地分配值?
例如:
const std::size_t size = 7;
unsigned int list[size] = { 0, 0, 2, 3, 0, 0, 0 };
更新: Georg Fritzsche 的解决方案是惊人的,需要一些工作才能在 msvc 和 Intel 编译器上进行编译,但仍然是一个非常有趣的解决问题的方法。