Eigenschaftenfelder wie in .NET

  • C++

    Eigenschaftenfelder wie in .NET

    Neu

    Guten Morgen zusammen,

    ich wollte wohl herausfinden, ob man in C++ auch dieses Konzept der Eigenschaften umsetzen kann, wie es das in .NET gibt. In C# beispielsweise gibt es ja die Möglichkeit, folgendes zu schreiben:

    C#-Quellcode

    1. ​String Text1
    2. {
    3. get
    4. {
    5. return text;
    6. }
    7. set
    8. {
    9. text = value;
    10. }
    11. }


    C++ bietet das von Hause aus nicht. Ich möchte möglichst darauf verzichten, für jede member variable eine eigene Getter- und Setterfunktion zu erstellen, wie es bei ​_declspec(property(get,put) type name erforderlich wäre. Ich hatte überlegt, dass irgendwie mit Lambdas zu lösen.

    Für mich ganz angenehm wäre folgende Schreibweise:

    C-Quellcode

    1. ​Property<std::string> Text
    2. {
    3. [&]() -> std::string&
    4. {
    5. return text;
    6. },
    7. [&](const auto& value)
    8. {
    9. text = value;
    10. }
    11. }


    Mein Kenntnisstand ist jetzt nicht so gut. Ich habe viel ausprobiert, viel überlegt, versucht das überlegte umzusetzen, lande aber immer bei dem Problem, wie ich da mit den Lambdas umgehen soll. Erstes Problem: so eine Property landet ja üblicherweise in einer Klasse, damit wäre die type deduction nicht möglich. Das zweite Problem ist, ich möchte mir gerne offen halten, welcher Datentyp sich im Argument des Setters verbirgt. Weil man einen std::string bspw. ja auch mit einer std::string_view füttern könnte.

    Kurz und schmerzlos: Ist das in irgendeiner Form, so wie ich mir das vorstelle, in C++ umsetzbar?

    Danke und Grüße,
    Micha
  • Benutzer online 3

    1 Mitglied und 2 Besucher

  • 1 Benutzer hat hier geschrieben