-qtemplatedepth (-ftemplate-depth)(仅限 C++)
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -qtemplatedepth | ✓ | ✓ | ||
| -ftemplate-depth | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
无。
用途
指定将由编译器处理且已递归实例化的模板特例化的最大数量。
语法
缺省值
-qtemplatedepth=300
-ftemplate-depth=256 或者 -qtemplatedepth=256
参数
- 号
- 递归模板实例化的最大次数。 数字可以是值 在 1 到 INT_MAX 的范围内。 如果您的代码尝试以递归方式实例化比 number更多的模板,那么将停止编译并发出错误消息。 如果您指定了无效值,则将使用默认值
300
256
。
使用量
请注意,将此选项设置为高值可能会由于生成的代码的复杂性和数量而导致内存不足错误。
预定义的宏
无。
示例
要允许成功编译
myprogram.cpp 中的以下代码:template <int n> void foo() {
foo<n-1>();
}
template <> void foo<0>() {}
int main() {
foo<400>();
}
输入:xlc++ myprogram.cpp -qtemplatedepth=400
