Compile-time-reflection in C++1z?

Gibt es eine Arbeitsgruppe in der C++ Standardisierung Ausschuss für compile-time-reflection in C++1z oder nach. Ich würde gerne wissen, was genau ist der Zweck und wie stark die zu erwartenden Werkzeuge werden?

Beispielsweise wird es möglich sein, Namen von Funktionen oder Klassen, die die Verwendung dieser tools?

struct A {int f() {return 42;}};
struct B {int (std::reflect<A>::member<0>::declname)() {return 43;}};
//equivalent to struct B {int f() {return 43;}};

Wenn würde es nicht so stark wie diese, welche die typischen use-cases werden?

  • Es ist noch in sehr frühen Stadien. Das beste, was Sie tun können, ist schauen Sie, was die Menschen vorschlagen.
  • Ich habe schon geschaut, aber da weiß ich nicht, die "Geschichte" der study group, ich bin nicht sicher, zu verstehen, was "Ihre ultimative Traum"...
  • Ich glaube nicht, dass Sie wissen, dass Sie noch entweder.
  • Dies wird sehr hilfreich sein bei der Serialisierung. Ein weiterer Anwendungsfall ist ein property-editor, der erlaubt dem Benutzer das Bearbeiten der Eigenschaften von Objekten. Diese Reflexion Ding wäre für mich sehr nützlich in vielen Fällen!
  • Jemand abgestimmt, diese Frage... wtf! Es kann nicht alles hinzufügen, was in der Kodierung, aber ich sicher wie die Hölle nicht neues über den Zugriff auf eine enumerator_list von einem static_assert in der Kompilierung. Dies ist ein großartiges feature. Die Zukunft sieht rosig aus
  • Wer interessiert ist, kann wollen, um untersuchen Sie das Geschreibsel in der SG7 Diskussion Gruppe.
  • Betrachten, was Sie vorschlagen, kann nicht ideal sein: in einigen Fällen, minimale support wird vorgeschlagen, damit die Menschen schreiben können Bibliotheken mit Ihnen, damit wir herausfinden können, der beste Weg, um zu standardisieren. Wenn wir dies nicht tun, werden wir coukd am Ende mit Schweinereien wie vector<bool>... Es kann eine überraschend kleine Gruppe von primitiven zu ermöglichen, wirklich leistungsstarken Bibliotheken.
  • Hmm das ist nicht wirklich c++1y, als c++1y bezieht sich auf den meisten wahrscheinlich c++14, wenn wir Glück haben. Nennen wir es c++1z? 😉
  • Gutes feature != gute Frage
  • Diese Frage scheint off-topic, weil es um Spekulation. Es gehört der std-Vorschläge forum.
  • dann schließen Sie es oder fügen Sie etwas von Wert zu. Ich würde lieber sehen, die Menschen diskutieren über die neuen features in C++ und bessere Wege finden, um das bauen von Dingen. Ihr negativer Kommentar ist mehr als nutzlos Hausaufgaben Fragen.

InformationsquelleAutor Vincent | 2014-03-05
Schreibe einen Kommentar