封装包含的嵌套深度是否有限?

Tem*_*Rex 6 c++ compiler-construction nested limit header-files

我在MSDN或其他地方找不到任何东西,但是对于包含头的嵌套深度有多大的硬编码限制?例:

// H1.h
// guards etc.
#include "H2.h"

// H2.h
// guards etc.
#include "H3.h"

//...

// HN.h <---- how large can N get??
Run Code Online (Sandbox Code Playgroud)

我想知道标准中是否有任何关于此的内容.如果答案是实现定义的,那么我主要对Visual Studio工具链感兴趣.

小智 7

该标准还说明了一些内容(关于实施数量的部分,附件B):

限制可能会限制包括下面描述的数量或其他数量的数量.建议将每个数量后面的括号内的数字作为该数量的最小值.但是,这些数量仅是指导原则,不能确定合规性.

...

  • #include文件的嵌套级别[256].

请注意,这只是建议的最小值,因此编译器可能不支持那么多包含(但大多数编译器都会这样做,如其他答案所示).


Joh*_*åde 6

我写了一个包含自己的头文件,并用MSVS 2010编译它.这给出了错误消息:

fatal error C1014: too many include files : depth = 1024
Run Code Online (Sandbox Code Playgroud)