decltypeには不思議がいっぱいです。
その驚くほど複雑な仕様は、彼ら闇魔術師の足元にも及ばない私には大変理解し難いものです。
以下のコードにあるdecltype((a))はその仕様のうちの一つです。
Cpp
#include <iostream> int main() { int a = 2; // int decltype(a) b = a; // int decltype((a)) c = a; // int& ←こ↑こ↓ ++c; decltype(auto) d = ++a; // int& ++d; cout << a << " " << b << " " << c << " " << d << endl; return 0; }
何故()を付けると、参照型だと推論されてしまうのでしょうか。
decltype(auto)に関しては、「Effective Modern C++」という魔導書を読んだことで辛うじて理解できています・・・
トラックに轢かれても、彼らの世界にだけは転生したくありません。
まだ回答がついていません
会員登録して回答してみよう