Ist es möglich, "Erweiterungs-Methoden" wie in C # zu erstellen, indem Makro in C ++ verwendet wird?

9

Ich möchte den std :: string erweitern und "equals" hinzufügen. Also habe ich folgendes gemacht:

%Vor%

und verwendete den folgenden Code:

%Vor%

Was (ich nehme an) kompiliert zu

%Vor%

Und alles ist großartig.

Jetzt möchte ich mein Makro verbessern, Klammern hinzufügen, um zu

zu kompilieren %Vor%

Ich habe versucht, etwas wie:

%Vor%

Aber es wird nicht kompiliert (das Makro passt einfach nicht)

Wie kann ich es erreichen?

    
OopsUser 05.04.2015, 09:08
quelle

1 Antwort

2

Dein Makro:

%Vor%

passt nicht, weil es nicht mit der Makrodefinition übereinstimmt. Du kannst so etwas schreiben:

%Vor%

aber es gibt keine Notwendigkeit. Alle std::string Instanzen können mit der überladenen operatror== verglichen werden.
Damit Sie folgenden Code schreiben können:

%Vor%

Die Verwendung der Makrodefinition in C ++ ist sehr unrecommended.

    
agnor 05.04.2015, 10:19
quelle

Tags und Links