c ++如何返回指向模板类内部结构的指针

时间:2015-05-20 05:37:48

标签: c++ templates pointers struct

我有一些模板clases,真正的列表类型,我需要实现一个名为“traduct”的方法,它必须返回一个指向列表中某个元素的指针

应用于此类的traduct应该重新指向结构

的指针
namespace std
{
//typedef struct PosicionS;

template <typename Type> class ListaPosicionada_DoubleLinked
{
    private:
        struct Posicion
        {
            Type elemento;
            Posicion* anterior;
            Posicion* siguiente;

    public:
        Posicion( const Type& elemento, Posicion* next = nullptr, Posicion* back = nullptr  )
            : elemento(elemento)
            , anterior(back)
            , siguiente(next)
        {}
};

这里是声明traduct位于main:

template <template <typename> class Lista, typename Type, struct posicion>
Lista<Type>::posicion& traduct( Type& elemento )
{
    ...
}

编译后得到这个错误:

error: 'struct posicion' is not a valid type for a template non-type parameter
template <template <typename> class Lista, typename Type, struct posicion>
                                                                 ^
error: need 'typename' before 'Lista<Type>::posicion' because 'Lista<Type>' is a dependent scope
Lista<Type>::posicion traducir( Type& elemento )
^

返回结构指针的正确形式是什么,我应该实现一个typedef来实现这个技巧吗?

0 个答案:

没有答案