有人可以向我解释为什么它不能编译以及我应该如何正确编写它?
#include <iostream>
using namespace std;
template <typename T>
struct Foo
{
template <typename U>
struct Bar
{
};
};
template <typename T, typename U>
void func(Foo<T>::Bar<U>& lhs)
{
cout << "working" << endl;
}
int main()
{
Foo<int>::Bar<char> a;
func(a);
return 0;
}
我收到以下编译器错误:
main.cpp:23:19: error: variable or field ‘func’ declared void
void func(Foo<T>::Bar<U>& lhs)