(Этот вопрос был существенно отредактирован от оригинала, не изменяя реальное намерение первоначального вопроса) Если сложить все элементы в vector<int>, то ответ может перелиться, требуя что-то вроде
Рассмотрим int *p;
auto & pp = p;
pp = (decltype(pp))malloc(sizeof(decltype(*pp))); //line1
pp = (decltype(p))malloc(sizeof(decltype(*p))); //line2
почему line1 не acceptible но line2 прекрасно
int main()
{
const int a = 1;
const int b = 2;
typedef decltype(a*b) multiply_type;
cout << typeid(multiply_type).name() << endl;
return 0;
}
Возвращаемое значение программы заключается в том