c++ - 最多支持多少种依赖类型?
问题描述
这只是我想了解更多关于 C++ 行为的好奇心。这在某种程度上是不现实的。正如我对模板所知,它可以用依赖于另一种类型的类型声明,例如vector<T>
T 可以是任何类型,因此 T 可以继续依赖于其他类型。那么它什么时候会出现诸如编译器引发的错误之类的限制?这也和递归函数有同样的理解反正我可能错了
解决方案
C++ 标准没有设置模板递归深度的限制,但它确实建议最小限制为 1024。
一些代码(例如 Boost Spirit、PyBind)可以通过复杂的语法或 Python 绑定来接近这个限制。您也可以通过一些元编程轻松实现它。
使用 GCC,您可以通过传递来控制递归限制
-ftemplate-depth=X
推荐阅读
- raspberry-pi - restbed make install in raspberry-pi undefined reference to dlopen dlclose
- java - 在 maven-compiler-plugin 上将 Maven 从 Java 9 迁移到 Java 10 失败
- php - 在foreach循环php期间检查数组值的变化
- python - 在具有增量名称的数据框列上应用公式
- javascript - 大写输入将光标移动到末尾
- javascript - 使用 Rotativa 将 Google 图表渲染成 pdf 格式
- iis - 如何删除 IIS 规则中的子文件夹?
- python - python:使用正则表达式查找特定单词
- python-3.x - 采样数据以保留分布
- clio-api - 有人使用 V4 Clio API 检索报告吗?