作为一个实验,我只是将一些代码放在一起,以便std::array<uint32_t, 256>在编译时生成.表内容本身是一个相当典型的CRC查找表 - 关于唯一新的事情是使用constexpr函数来计算条目而不是将自动生成的魔术表直接放在源代码中.
无论如何,这个练习让我很好奇:编译器constexpr在编译时评估函数或变量定义的计算量是否会有任何实际限制?例如,像gcc的-ftemplate-depth参数一样,对模板元编程评估的数量创建实际限制.(我也想知道参数包的长度是否存在实际限制 - 这将限制std::array使用std::integer_sequence中间对象创建的编译时的大小.)