Hallihallo,
Der Titel sagt eigentlich schon alles, aber hier nochmal: Was passiert
bei direct-brace-initialisierung einer temporären typedef'd reference?
1 | S fkt(const S & u){
|
2 | typedef const S & SR;
|
3 | //return SR(u); // #1 was passiert hier?
|
4 | return SR{u}; // #2 und was passiert hier?
|
5 | }
|
6 |
|
7 | int main(){
|
8 | return fkt(S{10}); // S ist "leere" Test-Klasse
|
9 | }
|
Ich bin beim Herumtesten über diese Funktion gestolpert und versuche
seitdem herauszufinden, wo der Unterschied zwischen #1 und #2 liegt. Ich
habe schon versucht, aus cppreference schlau zu werden, bin aber
gescheitert.
Hat jemand eine Ahnung, was dort passiert, oder kann mir cppreference
entschlüsseln..?!
MfG
Deckeltyp