Frage

Ich habe all das neue (on /.) Über C ++ 0x gehört, die keine Konzepte mehr haben, aber ich habe keine Ahnung, was sie sind? Kann mir jemand erklären?

War es hilfreich?

Lösung

Konzepte sind eine generische Programmierfunktion, mit der jemand Vorlagencode schreibt, um Anforderungen anzugeben, die die Typparameter erfüllen müssen.

Zum Beispiel benötigen einige Sammelarten für den Typparameter für die Sammlung, um den <Operator zu definieren. Daher kann der Programmierer ein Konzept namens LessThanc trompable definieren, das dem Compiler mitteilt, dass der Typparameter für die Vorlagenklasse den Operator <definiert muss. Wenn der Vorlagenbenutzer dann versucht, die Vorlage mit einem Typ zu instanziieren, der nicht über das weniger theanzielle Konzept verfügt (dh keine Operator <Funktion hat), kann der Compiler eine einfache Fehlermeldung anstelle des Stroms der mit dem Vorlagencode zugeordneten Fehlermeldungen aussagen. Der Compiler kann möglicherweise auch die zusätzlichen Informationen nutzen, die von Konzepten bereitgestellt werden, um effizientere Code zu generieren.

Dies ist eine Art Vereinfachung, aber ich denke, es gibt Ihnen die allgemeine Idee hinter Konzepten.

Wenn Sie einige der Fähigkeiten von Konzepten ausprobieren möchten, schauen Sie sich das an die Boost.Concept Überprüfen Sie die Bibliothek. Ich glaube nicht, dass es die gesamte Palette an Fähigkeiten bietet, die im Standard sein würden, aber es ist ein guter Ausgangspunkt.

Möglicherweise möchten Sie sich auch ansehen ConceptC ++, Es gibt dort eine gute Definition von Konzepten.

Andere Tipps

Hier ist ein Artikel, von dem ich denke, dass er helfen würde:

http://www.devx.com/specialreports/article/38864

Die Entscheidung, sie zu entfernen, wurde auch hier mehrmals diskutiert. Diese könnten sich als interessant erweisen:

C0x hat keine Konzepte mehr

Konzepte im Vergleich zu Schnittstellen

Hypothetische Diskussion über Konzepte

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top