Hi,
as all C++ books I've read so far tell me that const_casts are something really evil, I am trying to avoid them everywhere I can. However I came up with an issue where I don't really know whether avoiding them is worth the extra work.
I am writing a class for a tree which stores elements of class Leaf. A function search exists with several 100 lines of implementation. The interface looks like:
Now of course I don't want to really implement search twice, as the algorithm does not differ for the const and non-const versions. So what I'm doing at the moment is this:Code:class Leaf; class LeafAttributes; class Tree { public: [...] Leaf& search( const LeafAttributes& ); const Leaf& search( const LeafAttributes& ) const; }
So the question I'm asking: Is there a nice, clean way to implent this without using the const_cast?Code:class Leaf; class LeafAttributes; class Tree { public: [...] Leaf& search( const LeafAttributes& a ) { return const_cast<Leaf&> _search( a ); } const Leaf& search( const LeafAttributes& ) const { return _search( a ); } private: const Leaf& _search( const LeafAttributes& ) const }
Thanks,
Torsten


Reply With Quote
Bookmarks