Mit welchem ​​Typ von Strukturen können strukturierte Bindungen arbeiten?

8

Ich habe das Papier über strukturierte Bindungen hier überflogen Ссылка Ich konnte jedoch nicht erkennen, an welche Arten von Strukturen die Syntax gebunden werden kann. Meine beste Vermutung ist, dass die Struktur ein Aggregattyp sein muss. Oder etwas mit nur öffentlichen Daten Mitgliedern.

Gibt es eine Einschränkung, die ich vermisse?

    
Curious 01.12.2016, 02:27
quelle

1 Antwort

5

Wenn Sie std::tuple_size , std::tuple_element und get für Ihren Typ nicht spezialisieren möchten, benötigt [dcl.decomp] Folgendes:

  

Andernfalls müssen alle nicht-statischen Datenmitglieder von E öffentliche direkte Mitglieder von E oder derselben eindeutigen Gruppe sein   Öffentliche Basisklasse von E , E darf kein anonymes Mitglied der Union haben und die Anzahl der Elemente in der   Die Bezeichnerliste muss der Anzahl der nicht statischen Datenelemente von E entsprechen.

Im Grunde müssen also alle Datenelemente in derselben Klasse deklariert werden, und alle müssen öffentlich sein, und Sie müssen die gleiche Anzahl von Namen angeben wie Mitglieder.

    
Kerrek SB 01.12.2016 02:41
quelle