Verschiedene CV-Qualifier mit strukturierten Bindungen

8

Die Deklaration der strukturierten Bindung in C ++ 17 ermöglicht verschiedene Optionen, wie z :

%Vor%

Gibt es eine Möglichkeit, a und b verschiedene CV-Qualifier zu vergeben? Zum Beispiel der Typ von a als int und b als int const ?

    
Jonas 21.04.2017, 08:03
quelle

2 Antworten

8

Nein - dies wird im Vorschlag behandelt. " s Q & A:

  
    

Soll die Syntax erweitert werden, um die Typen der einzelnen Namen zu const / & amp; zu qualifizieren?

  
%Vor%      

Wir denken, die Antwort sollte nein sein. Dies ist eine einfache Funktion, um einen Wert zu speichern und Namen an seine Komponenten zu binden,   nicht mehrere Variablen deklarieren. Eine solche Qualifizierung zuzulassen wäre ein Feature-Creep, das das Feature auf erweitert   etwas anderes sein, nämlich eine Möglichkeit, mehrere Variablen zu deklarieren.   Wenn wir mehrere Variablen deklarieren wollen, haben wir bereits eine Möglichkeit, sie zu buchstabieren:

%Vor%
    
Vittorio Romeo 21.04.2017, 08:20
quelle
4

Es ist nicht erlaubt, aber es scheint einige Missverständnisse darüber zu geben, wie strukturierte Bindung funktioniert. Das folgende ist, wie Ihr Schnipsel tatsächlich funktioniert:

%Vor%

Basierend auf den Beispielen, die Sie angegeben haben, scheint der Fehler darin zu bestehen, dass das auto in auto [a, b] auf die Variablen verteilt ist. Es tut nicht. Die auto gibt es eigentlich den Typ des Initialisierers. In C ++ wird dies grob wie folgt codiert:

%Vor%

Dies steht im Gegensatz zu etwas wie:

%Vor%     
mpark 21.04.2017 19:17
quelle

Tags und Links