首页 > 解决方案 > 最多支持多少种依赖类型?

问题描述

这只是我想了解更多关于 C++ 行为的好奇心。这在某种程度上是不现实的。正如我对模板所知,它可以用依赖于另一种类型的类型声明,例如vector<T>T 可以是任何类型,因此 T 可以继续依赖于其他类型。那么它什么时候会出现诸如编译器引发的错误之类的限制?这也和递归函数有同样的理解反正我可能错了

标签: c++

解决方案


C++ 标准没有设置模板递归深度的限制,但它确实建议最小限制为 1024。

一些代码(例如 Boost Spirit、PyBind)可以通过复杂的语法或 Python 绑定来接近这个限制。您也可以通过一些元编程轻松实现它。

使用 GCC,您可以通过传递来控制递归限制

-ftemplate-depth=X

推荐阅读