Warning замучал. Отсутствие virtual ~selected_cb()
От: vitaly.grechko Россия  
Дата: 22.11.08 22:33
Оценка:
htmlayout_controls.hpp(46) : warning C4265: 'htmlayout::selected_cb' : class has virtual functions, but destructor is not virtual
instances of this class may not be destructed correctly
Это поправится или прагмой задавить? Вообще я всегда в интерфесайх ставлю виртуальный деструктор с тех пор как отсутствие один раз привело к трапу. Если кто-то удивился, то поставьте у себя в cl.exe флажок -wall много всего интересного почитаете
Re: Warning замучал. Отсутствие virtual ~selected_cb()
От: c-smile Канада http://terrainformatica.com
Дата: 23.11.08 01:58
Оценка: 3 (1)
Здравствуйте, vitaly.grechko, Вы писали:

VG>htmlayout_controls.hpp(46) : warning C4265: 'htmlayout::selected_cb' : class has virtual functions, but destructor is not virtual

VG> instances of this class may not be destructed correctly
VG>Это поправится или прагмой задавить? Вообще я всегда в интерфесайх ставлю виртуальный деструктор с тех пор как отсутствие один раз привело к трапу. Если кто-то удивился, то поставьте у себя в cl.exe флажок -wall много всего интересного почитаете

Не все так просто. Пришлось делать так:

    class callback 
    {
    public:
    /**Is called for every element that match criteria specified when calling to #htmlayout::dom::element::select() function.*/
      virtual bool on_element(HELEMENT he) = 0; /* return false to continue enumeration*/
#if !defined(_MSC_VER) || _MSC_VER > 1200
      virtual ~callback() {} // this line causing internal compiler error in VC6
#endif
    };
Re[2]: Warning замучал. Отсутствие virtual ~selected_cb()
От: Vitaly Grechko Россия  
Дата: 24.11.08 10:12
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, vitaly.grechko, Вы писали:


VG>>htmlayout_controls.hpp(46) : warning C4265: 'htmlayout::selected_cb' : class has virtual functions, but destructor is not virtual

VG>> instances of this class may not be destructed correctly
VG>>Это поправится или прагмой задавить? Вообще я всегда в интерфесайх ставлю виртуальный деструктор с тех пор как отсутствие один раз привело к трапу. Если кто-то удивился, то поставьте у себя в cl.exe флажок -wall много всего интересного почитаете

CS>Не все так просто. Пришлось делать так:


CS>
CS>    class callback 
CS>    {
CS>    public:
CS>    /**Is called for every element that match criteria specified when calling to #htmlayout::dom::element::select() function.*/
CS>      virtual bool on_element(HELEMENT he) = 0; /* return false to continue enumeration*/
CS>#if !defined(_MSC_VER) || _MSC_VER > 1200
CS>      virtual ~callback() {} // this line causing internal compiler error in VC6
CS>#endif
CS>    };
CS>


Вот это оперативность! Супер. Спасибо. Вообще HTMLayout — чудо с неба какое-то. До этого мы провозились месяц с компилящией и встраиванием gecko (Mozilla). Он наши sdk раздул в несколько раз, асертился, валил в stdout всякую лажу и тормозил. Теперь я надеюсь это позади, хотя есть проблемки в HTMLayout — я потом напишу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.