sizeofの型を返す版
int n1 = 3; decltype(n1) n2 = 10; // int n2; decltype(n1 + n2) value; // int value;
関数の戻り値の型でもOK
int foo(); decltype(foo()) value; // int value;
template <class Iterator> void something(Iterator first, Iterator last) { decltype(*first) value; // ↓の場合、int value; ... } vector<int> v; something(v.begin(), v.end());