为何在这个成员函数前面多加一个typename?解决思路
为何在这个成员函数前面多加一个typename?头文件里面定义模版类:C/C++ codetemplate typename T, int AS
为何在这个成员函数前面多加一个typename?
头文件里面定义模版类:
C/C++ codetemplate< typename T, int AS = 1 >class Octree{ ....};{
cpp文件里面:
C/C++ codetemplate< typename T, int AS >typename Octree<T,AS>::Node*& Octree<T,AS>::Branch::child( int x, int y, int z ){ return children[z][y][x];}
为什么前面多加了typename ?
[解决办法]为了告诉编译器Octree<T,AS>::Node是个类型,而不是一个其他东西(比如某个静态变量)
C++标准规定typename在这种场合下是必须的。不过即使不加,有的编译器比如VC可能还是让你过的。