class AutoRelease
{
T* p;
public:
operator T*() { return p; }
operator const T*() const { return p; }
T* operator -> () { return p; }
const T* operator -> () const { return p; }
T &operator * () { return *p; }
const T &operator * () const { return *p; }
};
Компилятор ругается на то, что нельзя сделать перегрузку -> и *
Как же мне сделать так, что бы в зависимости от констанстности объекта AutoRelease возращалось const T* / const T & ?
Здравствуйте, _Winnie, Вы писали:
_W>
_W>class AutoRelease
_W>{
_W> T* p;
_W>public:
_W> operator T*() { return p; }
_W> operator const T*() const { return p; }
_W> T* operator -> () { return p; }
_W> const T* operator -> () const { return p; }
_W> T &operator * () { return *p; }
_W> const T &operator * () const { return *p; }
_W>};
_W>
_W>Компилятор ругается на то, что нельзя сделать перегрузку -> и *
_W>Как же мне сделать так, что бы в зависимости от констанстности объекта AutoRelease возращалось const T* / const T & ?
А это у тебя шаблон?
Здравствуйте, Bell, Вы писали:
B>Очень странно.
B>Что за компилятор? Comeau и VC6 компилят без проблем.
На 99% уверен что дебилдер.
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, WolfHound, Вы писали:
WH>На 99% уверен что дебилдер.
Нет, с ним всё OK
... << RSDN@Home 1.1.2 stable >>