-qtemplatedepth (-ftemplate-depth)(仅限 C++)

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-qtemplatedepth    
-ftemplate-depth      
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

"模板" 控件

等效编译指示

无。

用途

指定将由编译器处理且已递归实例化的模板特例化的最大数量。

语法

读取语法图跳过可视语法图  -f -template-depth =
读取语法图跳过可视语法图  -q templatedepth =

缺省值

基于 XL 的前端开始-qtemplatedepth=300基于 XL 的前端端

基于 Clang 的前端开始-ftemplate-depth=256 或者 -qtemplatedepth=256基于 Clang 的前端端

参数

递归模板实例化的最大次数。 数字可以是值 在 1 到 INT_MAX 的范围内。 如果您的代码尝试以递归方式实例化比 number更多的模板,那么将停止编译并发出错误消息。 如果您指定了无效值,则将使用默认值 基于 XL 的前端开始300基于 XL 的前端端基于 Clang 的前端开始 256基于 Clang 的前端端

使用量

请注意,将此选项设置为高值可能会由于生成的代码的复杂性和数量而导致内存不足错误。

预定义的宏

无。

示例

要允许成功编译 myprogram.cpp 中的以下代码:
template <int n> void foo() {
  foo<n-1>();
}

template <> void foo<0>() {}

   int main() {
   foo<400>();
} 
输入:
xlc++ myprogram.cpp -qtemplatedepth=400

相关信息