\n\n\n问:sizeof(T) 能产生的最大值是多少?
\n
A:std::numeric_limits<size_t>::max()
显然, sizeof 不能返回大于 的值std::numeric_limits<size_t>::max(),因为它不适合。唯一的问题是,它能回来吗...::max()?
是的。这是一个有效的程序,不违反 C++03 标准的任何约束,它演示了示例证明。特别是,该程序不违反 \xc2\xa75.3.3 [expr.sizeof] 和 \xc2\xa78.3.4 [dcl.array] 中列出的任何约束:
\n\n#include <limits>\n#include <iostream>\nint main () {\n typedef char T[std::numeric_limits<size_t>::max()];\n std::cout << sizeof(T)<<"\\n";\n}\nRun Code Online (Sandbox Code Playgroud)\n