Edit History


Edit history of hygiene

RevTimeChangesOperations
Log
62013-06-23 16:32:26+7 -1 line(s)[View this version, source] [Diff to previous]
No spam
52013-06-23 05:52:24+1 -7 line(s)[View this version, source] [Diff to current|previous]
Если mlabtue вполне законное средство убрать константность, у него есть классические применения, то const_cast - это всегда некий хак.Не подскажете, как убрать const_cast в следующем случае? Я пробовал писать у указателей mlabtue, тогда появляется ошибка несовместимости по присваиванию указателя и указателя на const.//// Класс указателя с подсчётом ссылок на объект.// Когда счётчик ссылок становится равен нулю, объект удаляется.//template<typename T>class SimpleSmartPointer{private: SimpleSmartPointer *_prev; // предыдущий элемент кольцевого двунаправленного списка SimpleSmartPointer *_next; // следующий элемент кольцевого двунаправленного списка T *_object; // собственно указатель на предмет... // // Заполнить указатель по образцу существующего // void FillPointerBy(SimpleSmartPointer<T> &copy) { if (copy._object == NULL) { _object = NULL; _prev = NULL; _next = NULL; } else { _object = copy._object; _prev = _next = copy._next; _prev->_next = this; _next->_prev = this; } }public:... // // Конструктор копирования - для первой инициализации объекта // const тут совершенно не по делу, но без него ругается std::pair, // используемая в std::map. // SimpleSmartPointer(const SimpleSmartPointer<T> &copy) { FillPointerBy(const_cast<SimpleSmartPointer<T>&>(copy)); }...};
42013-01-17 13:39:41+6 -0 line(s)[View this version, source] [Diff to current|previous]
adding note about C++ hygiene
32004-10-07 01:52:37+1 -1 line(s)[View this version, source] [Diff to current|previous]
fix stupid spelling error
22004-10-07 01:51:04+1 -1 line(s)[View this version, source] [Diff to current|previous]
note HYGIENE-VERSUS-GENSYM
12004-09-28 14:33:23+1 -0 line(s)[View this version, source] [Diff to current|previous]
*** no log message ***
[Diff from epoch]