编译递归模板以调用静态成员函数时类型不完整
Incomplete type when compiling recursive template to call static member function
我正在Windows上使用g ++版本3.4.4编译此代码:-
#include <iostream>
template< int i >
class LOOP{
public:
static inline void EXEC(int* count){
(*count)++;
LOOP< i-1 >::EXEC(count);
}
};
template<> class LOOP< 0 >{
public:
static inline void EXEC(int* count){
(*count)++;
}
};
int main(int i){
int barely = 0;
LOOP< 1000 >::EXEC(&barely);
}
它抱怨,在嵌套名称说明符中使用的不完整类型LOOP<500>,并且之前有一个先前实例的列表,"从静态void LOOP::EXEC(int *)实例化,带有i - 1000"等等。
当我将其更改为 LOOP<100 时>它编译得很好。
编辑 如果这会影响实现限制,我正在 cygwin 上运行它。
您达到了实现的模板深度限制。您可以通过使用 -ftemplate-depth=1005
(现代 GCC)或-ftemplate-depth-1005
(旧版 GCC)进行编译来增加限制。
相关文章:
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 将C++子类成员函数(虚拟实现)传递给 C 类型函数指针
- C++ 这里有一个返回 (24) 的布尔返回类型函数
- 使用SFINAE来检测void返回类型函数的存在
- 使用此类型函数有什么优势
- 为什么此函数通过类型函数指针调用后,呼叫明智地行为
- 如何使用无类型函数指针调用C++成员函数
- 模板返回类型函数如何在C++中工作
- 具有通用类型函数的动态库[C ]
- 如何在返回类型函数模板的专用化中使用派生类型?( "couldn't infer template argument" )
- Bon appetit :从 int 返回类型函数在 main() 中打印字符串
- 对于需要其他模板参数的类型函数的部分模板专业化
- c++错误的参数类型-函数指针
- 延迟评估模板类型函数
- 在引用或指针返回类型函数上输入
- 具有指针数据类型的非类型函数模板参数
- STL中使用的C++自定义比较类型(函数谓词与较少结构)
- C++模板基类的非类型函数模板的 using 声明
- 字符串到类型函数,模板专用化使调用统一
- 自由类型函数可以接受 Unicode 文件名吗?