Учебное пособие, которое вы прочитали, неверно.Это:
std::deque<int> c(std::istream_iterator<int>(std::cin), std::istream_iterator<int>());
Не может быть проанализировано как объявление функции , поскольку std::cin
не может быть именем параметра .Если вы удалите квалификатор std
, хотя:
std::deque<int> c(std::istream_iterator<int>(cin), std::istream_iterator<int>());
, тогда вы получите объявление функции.
[...] иНасколько я знаю, переменные могут не иметь имен с круглыми скобками?
Скобки не являются частью имени.Вы можете просто положить их туда, сколько хотите:
int ((((((a)))))) = 12345; // valid code!
a++; // the variable is named 'a'