C++ 模板化函数中使用的模板化类中的嵌套类语法错误
假设我有以下几点:C++ 模板化函数中使用的模板化类中的嵌套类语法错误,c++,templates,inner-classes,C++,Templates,Inner Classes,假设我有以下几点: template<typename T> struct Foo { public: class Bar { }; }; 模板 结构Foo { 公众: 分类栏 { }; }; 如果我定义了这个函数 template <typename T> void func(Foo<T>::Bar g) { } 模板 void
template<typename T>
struct Foo
{
public:
class Bar
{
};
};
模板
结构Foo
{
公众:
分类栏
{
};
};
如果我定义了这个函数
template <typename T>
void func(Foo<T>::Bar g) { }
模板
void func(Foo::Bar g){}
我得到一个错误:
语法错误:标识符“Bar”
为什么会出现错误,如何解决错误,以便使用模板函数。使用
template <typename T>
void func( typename Foo<T>::Bar g ) { }
模板
void func(typename Foo::Bar g){}
否则,编译器不会将构造Foo::Bar
视为类型说明符,而是将其视为表达式。使用
template <typename T>
void func( typename Foo<T>::Bar g ) { }
模板
void func(typename Foo::Bar g){}
否则,编译器不会将构造
Foo::Bar
视为类型说明符,而是将其视为表达式。void func(typename Foo::Bar g){}
void func(typename Foo::Bar g){}
如何添加一些文字说明问题中的代码段为什么不起作用?如何添加一些文字说明问题中的代码段为什么不起作用?