次のコードで「マクロ名は識別子である必要があります」というエラーが表示され続けますが、その理由はわかりません。私の知る限り、命名基準に違反したことはありません。これは私の「dllist.h」ファイルからのものです:
#ifndef _DOUBLY_LINKED_LIST_
#define _DOUBLY_LINKED_LIST_
template <class T>
class IntDLLNode {
friend class IntDLList;
public:
IntDLLNode() {next = prev = NULL;}
IntDLLNode(const T& el, IntDLLNode *n = NULL, IntDLLNode *p = NULL) {
info = el;
next = n;
prev = p;
}
protected:
T info;
IntDLLNode<T> *next, *prev;
};
template <class T>
class IntDLList {
public:
IntDLList() {head = tail = NULL;}
void addToDLLTail(const T& el);
void addToDLLHead(const T& el);
T deleteFromDLLTail();
T deleteFromDLLHead();
void deleteNode(int);
void isInList(int) const;
void addSorted(int);
void printList();
private:
IntDLLNode<T> *head, *tail;
};
#endif
DOUBLY_LINKED_LISTやDOUBLYLINKEDLISTなどの名前も試しましたが、すべて同じエラーになります。