C ++编译器最大类数

时间:2010-06-07 01:03:25

标签: c++ metaprogramming

在元编程中,类的数量增长得非常快。 现代编译器允许的最大类数,例如g ++,需要注意什么?

谢谢

3 个答案:

答案 0 :(得分:2)

我猜这个问题最好由C ++委员会发布的标准来回答。但是看this place,虽然对很多项目有最小数量限制,但我看不到类数量的上限(说至少每个类型的给定项目数应该由编译器支持但是这不是约束力限制)。如果您的编译器可以支持这些最小限制,那么您应该没问题。

但是,哪些因素会对课程数量的上限产生影响,这会激起我的学术好奇心。我很高兴知道编译器大师是否可以回答这个问题。

答案 1 :(得分:1)

如果您在64位计算机上运行,​​则不太可能在任何现代编译器中没有任何限制。类型信息可能是动态分配的,而不是放入一些硬编码的有限大小的容器中。

我可以想到一些系统可能会在2 GB的内存空间中难以编译,就像32位计算机一样。然而,即使我已经使用了大量模板元编程的大型C ++代码库,但实际上这并不是一个问题。编译的缓慢和调试的烦恼可能会在内存大小之前杀死你: - )

答案 2 :(得分:0)

鉴于编译器的解析树只是树 - 我认为可以安全地假设编译器限制是整体复杂性而不是任何一种实体的数量。

当然,在他们面前有源的人可以给出一个更明确的答案:)