1. C++ / Говнокод #2640

    +65.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 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;

    сначала делаем тимплейтный класс, параметр которого никому не нужен, а потом делаем заглушку для этого параметра.
    нормально.

    Запостил: kubrinsky, 19 Февраля 2010

    Комментарии (9) RSS

    • Во первых, зачем использовать struct там, где нужно class? Во вторых, метод Initialize() явно намекает, что аффтар не знает о конструкторах. В третьих есть std::list.
      Ответить
      • это интрузивный список...
        наличие говнокода подтверждаю...
        Ответить
        • Тогда Boost.Intrusive, если религия позволяет :)
          Ответить
    • SLinkedListNode* m_pPrev;
      не скопмилится
      Ответить
    • Ну и лол:
      struct SContainer
      {
      public:
      Ответить

    Добавить комментарий