以编译方式在C ++中编译时创建静态数组
可以在编译时定义静态数组,如下所示:
const std::size_t size = 5;
unsigned int list[size] = { 1, 2, 3, 4, 5 };
问题1 - 是否可以通过使用各种元编程技术在编译时“以编程方式”分配这些值?
问题2 - 假设数组中的所有值都是相同的barr,是否可以在编译时以编程方式选择性地分配值?
例如:
const std::size_t size = 7;
unsigned int list[size] = { 0, 0, 2, 3, 0, 0, 0 };
欢迎使用C ++ 0x的解决方案
阵列可能非常大,几百个元素长
现在的数组只包含POD类型
还可以假设,以静态编译时兼容的方式预先知道阵列的大小。
解决方案必须是C ++ (没有脚本,没有宏,没有pp或基于代码生成器的解决方案)
更新: Georg Fritzsche的解决方案非常棒,需要一些工作才能在msvc和intel编译器上进行编译,但这仍然是解决问题的一种非常有趣的方法。
SMILET
弑天下
慕虎7371278
相关分类