gpt4 book ai didi

c++ - C++ 中嵌套模板声明的限制

转载 作者:行者123 更新时间:2023-12-01 23:53:12 26 4
gpt4 key购买 nike

C++ 标准施加了许多限制,例如函数参数的最大数量、标识符的最大长度或嵌套范围的最大数量。

我很好奇的是最大嵌套模板声明的限制(或缺乏),例如:

template <template <template < template <template < ...

我听某人说它只有两个 ( template <template <typename T> class> ),但事实并非如此(至少对于最新版本的 MSVC 编译器而言并非如此)。

我感兴趣的是,这是否真的有限制,如果有,它的值(value)是什么,以及它在 C++ 标准的不同版本之间是如何变化的。

最佳答案

标准没有强加任何值。这是一个实现定义的值,将由编译器记录。我在标准中可以找到的唯一直接限制,因为 [temp.arg.template] 中没有任何内容。位于 [implimits]它是

  • Template parameters in a template declaration ([temp.param]) [1 024].

其中 1024 是建议的最小参数数。这只是一个建议,paragraphs 1 and 2 :

Annex B (informative)Implementation quantities [implimits]

  1. Because computers are finite, C++ implementations are inevitably limited in the size of the programs they can successfully process. Every implementation shall document those limitations where known. This documentation may cite fixed limits where they exist, say how to compute variable limits as a function of available resources, or say that fixed limits do not exist or are unknown.

  2. The limits may constrain quantities that include those described below or others. The bracketed number following each quantity is recommended as the minimum for that quantity. However, these quantities are only guidelines and do not determine compliance.

强调我的

说清楚。

关于c++ - C++ 中嵌套模板声明的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58380670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com