我有一些模板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来实现这个技巧吗?