ich war es Leid immer "const T* const" schreiben zu müssen und habe miri deswegen eine kleine Wrapper-Klasse geschrieben. Vielleicht finde die ja der ein oder andere ganz hilfreich.
Code: Alles auswählen
template<typename T> class constptr
{
public:
constptr(const T* const data) : Data(data)
{
}
template<typename C> constptr(const constptr<C>& other) : Data(dynamic_cast<const T* const>(other.Data))
{
}
const T* const operator->() const
{
return Data;
}
const T& operator *()
{
return *Data;
}
bool operator==(const T* const other) const
{
return (other == Data);
}
bool operator==(const constptr<T>& other) const
{
return (other.Data == Data);
}
bool isNull() const
{
return (Data == nullptr);
}
const T* const Data;
};
mfg,
Halan