vielleicht fällt einem ja was sinnvolles zu meinem derzeitigem Problem ein:
Ich habe eine Klasse, die einen Shared-Pointer hält und nichts anderes tut, als auf eine Implementation zu verweisen:
Code: Alles auswählen
class Segment : public SegmentInterface
{
private:
shared_ptr< SegmentImpl const > _implementation;
public:
Segment( SegmentImpl const * impl )
: _implementation( impl ) {}
...
virtual bool setSource( Point2d & newPosition )
{ return _implementation->setSource( newPosition ); }
...
Das klappte bisher eigentlich wunderbar - nur nun muss ich Funktionen weiterleiten, die nicht als const deklariert sind.
Die Lösung für mein Problem wäre, wenn ich Segment erklären könnte, dass ich mit einem Konstruktor für (SegmentImpl const *) auch nur Segment-Elemente erzeugen kann, die const sind - die entsprechend die setSource-Funktion nicht rufen könnten.
Fällt dazu jemandem eine elegante Lösung ein, die über eine statische Frickelei hinaus reicht?