Почему следующее не компилируется?
std::vector<int> v{1,2};
decltype(v[0]) i; //doesn't work
decltype(v)::value_type j; //works
Я получаю ошибку test.cpp:31:18: error: declaration of reference variable 'i' requires an initializer
. Разве v[0]
типа int
здесь нет?
Я понимаю, что даже если бы он работал, он был бы не так безопасен, как последний, если вектор пуст, но я чувствую, что это должно быть проблемой времени выполнения, а не проблемой времени компиляции.