- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
template <class T>
struct SLinkedListNode
{
public:
SLinkedListNode* m_pPrev; ///< Pointer to previous node.
SLinkedListNode* m_pNext; ///< Pointer to next node.
int Initialize();
int Finalize();
};
...
struct SWaiterNode : public SLinkedListNode<SContainerNode>, public SLinkedListNode<SWaiterListNode>
{
...
// container node
struct SContainerNode
{
// no members needed yet (just for masking SLinkedListNode type)
};
// container
struct SContainer
{
public:
SLinkedListNode<SContainerNode>* m_pObjects;
сначала делаем тимплейтный класс, параметр которого никому не нужен, а потом делаем заглушку для этого параметра.
нормально.
наличие говнокода подтверждаю...
не скопмилится
struct SContainer
{
public: