mercredi 22 février 2017

Decltype with two arguments modifies type

I'm reading about decltype with multiple arguments and according to everyone else it just validates that all types are consistent and if so, completely discards all parameters but the last one. However it seems that passing another parameter does affect the return value:

  int i = 7;
  decltype(i) var = i;
  ++var;
  cout << i << endl; // prints '7', as I would expect

but:

int i = 7;
decltype(1, i) var = i;
++var;
cout << i << endl; // prints '8' - apparently 'var' is now a reference to 'i'

Why is that?

Aucun commentaire:

Enregistrer un commentaire