我遇到嵌套类模板的方法声明问题.我有这样的事情:
template <typename T>
class HashTrie
{
template <typename Y>
class Entry
{ // members and methods here
};
template <typename U>
class Node
{ // members and methods here
};
// members and methods here
}
Run Code Online (Sandbox Code Playgroud)
以下似乎没有问题:
template <typename T>
template <typename Y>
HashTrie<T>::Entry<Y> HashTrie<T>::Entry<Y>::someMethod() {
//...
}
Run Code Online (Sandbox Code Playgroud)
但是,这不是:
template <typename T>
template <typename U>
std::map<char, HashTrie<T>::Node<U> > HashTrie<T>::Node<U>::anotherMethod() {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我在GCC上收到以下错误
./HashTrie.h:389: error: type/value mismatch at argument 2 in template parameter list for ‘template<class _Key, class …Run Code Online (Sandbox Code Playgroud)