Maison >développement back-end >C++ >C 11 peut-il obtenir des propriétés de type C# avec des classes et des Lambdas sans nom ?

C 11 peut-il obtenir des propriétés de type C# avec des classes et des Lambdas sans nom ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 03:08:02984parcourir

 Can C  11 Achieve C#-Like Properties with Unnamed Classes and Lambdas?

C 11 : Propriétés comme C# ?

La syntaxe C# permet des getters et setters de champs concis. C 11 introduit les classes nommées et les lambdas, offrant une solution similaire.

Implémentation des propriétés C# dans C 11

Pour émuler les propriétés C# dans C 11, vous pouvez utiliser des classes sans nom et les fonctions d’accès aux membres. Considérez l'implémentation suivante :

<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>

Exemple d'utilisation

<code class="cpp">Foo foo;
foo.alpha = 10;
cout <p>Cette approche fournit une syntaxe de type C# pour obtenir et définir des propriétés avec des noms générés automatiquement. </p></code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn