小编Dan*_*Dan的帖子

C++嵌套模板类方法问题

我遇到嵌套类模板的方法声明问题.我有这样的事情:

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)

c++ templates typedef nested typename

8
推荐指数
1
解决办法
2341
查看次数

标签 统计

c++ ×1

nested ×1

templates ×1

typedef ×1

typename ×1