C 11: Eigenschaften wie C#?
Die C#-Syntax ermöglicht prägnante Feld-Getter und -Setter. C 11 führt benannte Klassen und Lambdas ein und bietet eine ähnliche Lösung.
Implementieren von C#-Eigenschaften in C 11
Um C#-Eigenschaften in C 11 zu emulieren, können Sie unbenannte Klassen verwenden und Mitgliederzugriffsfunktionen. Betrachten Sie die folgende Implementierung:
<code class="cpp">struct Foo { struct { int value; auto &operator=(const int &i) -> decltype(auto) { return value = i; } auto operator()() const -> decltype(auto) { return value; } } alpha; struct { float value; auto &operator=(const float &f) -> decltype(auto) { return value = f; } auto operator()() const -> decltype(auto) { return value; } } bravo; };</code>
Verwendungsbeispiel
<code class="cpp">Foo foo; foo.alpha = 10; cout << foo.alpha() << endl;</code>
Dieser Ansatz bietet eine C#-ähnliche Syntax zum Abrufen und Festlegen von Eigenschaften mit automatisch generierten Namen.
Das obige ist der detaillierte Inhalt vonKann C 11 C#-ähnliche Eigenschaften mit unbenannten Klassen und Lambdas erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!