Шаблон внутри класса шаблона

У меня есть класс, который выглядит так:

template <typename P>
class Pack {
    Public:
          template <typename X>
    Private:
          Other T <other>
};

Я хочу написать функцию вне класса, но у меня возникают трудности с определением заголовка. Я пробовал что-то вроде этого:

template <typename X>
int Pack<X>::pop(X led) const{
  // Do something in here with Other from the private above
}

Но это не работает, он продолжает говорить: «Неправильное определение поп-музыки, не соответствует никаким определениям P.

Любая помощь приветствуется, спасибо!

Уточнение: попытка реализовать заглушку функции, чтобы я мог написать код вне класса.


person chatycat99    schedule 16.04.2014    source источник
comment
Public: и template <typename X> внутри объявления класса очень странные.   -  person Constructor    schedule 17.04.2014
comment
Не совсем уверен, в чем ваша проблема, но, возможно, это поможет: template-parameter-lis/22763450#22763450" title="в чем разница между двумя типами шаблонов и двумя списками параметров шаблона"> stackoverflow.com/questions/22763270/   -  person chris    schedule 17.04.2014
comment
Я согласен, но у меня действительно нет возможности изменить это   -  person chatycat99    schedule 17.04.2014


Ответы (1)


Ваш код выглядит неполным, и вы время от времени публикуете его небольшие фрагменты, но я считаю, что этот синтаксис - это то, что вам нужно:

#include <iostream>
using namespace std;

template <typename P>
class Stack {
    public:
          template <typename X> int pop(X pred) const;
};

template <typename P> 
template<typename X>
int Stack<P>::pop(X pred) const{
    return 0;
}

int main() {

    Stack<bool> obj;
    char a;
    obj.pop(a);

    return 0;
}

http://ideone.com/Cp69hg

person Marco A.    schedule 16.04.2014
comment
@ user2577829 Рад, что помог. Не забудьте отметить это как ответ, если это то, что вы искали. - person Marco A.; 17.04.2014