現在、リスト クラスにプライベートなノード構造を使用して、リスト テンプレート クラスにソート アルゴリズムを実装しようとしています。ノード型へのポインターを返すいくつかのプライベート再帰関数を使用しているため、g++ で宣言エラーが発生します。ここに私が持っているもののサンプルがあります -
template<class T>
class SList
{
private:
struct NODE
{
T* elem;
NODE* next;
} *_head, *_tail;
NODE* sort(NODE* node);
public:
//other declarations...
}
template<class T>
NODE* SList<T>::sort(NODE* node) //Error: 'NODE' does not name a type
{
//sorting algorithm
}
これは c++ の制限ですか、それとも何か不足していますか?