Boost-Variante einfachen Aufruf zu gängigen Methoden

8

Ich habe zwei Zeiger, von denen nur einer gesetzt werden kann, also erwäge ich boost :: variant, sagen wir: boost::variant<shared_ptr<Type1> shared_ptr<Type2>> . Typ 1 und 2 sind unterschiedlich, aber sie teilen einige Funktionen. Thay zum Beispiel haben beide die Methode IsUnique .

Wenn ich den Code habe, um die Initialisierung zu überprüfen:

%Vor%

Ich würde erwarten, in der Lage zu sein, es durch etwas zu ersetzen, das so nah wie möglich an:

%Vor%

Aber es scheint, dass ich Besucher definieren muss, um Typen einzuschalten.

Vermisse ich etwas, gibt es eine Vorlage oder etwas, mit dem ich etwas auf den aktuellen Typ anwenden kann? Es könnte c ++ 14 sein.

    
gsf 28.05.2016, 23:37
quelle

1 Antwort

7

Sie können vielleicht einfach sagen

%Vor%

in C ++ 14 mit dem letzten Boost. Lass es mich ausprobieren ...

Ja, Sie können: Live On Coliru

%Vor%

Ein Muster, das ich oft benutze, ist, dem Besucher eine Überladung zu geben, die die Variante behandelt:

%Vor%

So können Sie Folgendes tun:

%Vor%     
sehe 28.05.2016, 23:41
quelle

Tags und Links