istream_iterator<int>(cin)
is exactly the same as istream_iterator<int> cin
but with superfluous parens. This declarator syntax was inherited from C, and I think even the inventor of C (Ken Thompson?) described it as a mistake.
More Related Contents:
- Default constructor with empty brackets
- Most vexing parse
- What is the purpose of the Most Vexing Parse?
- Why is there no call to the constructor? [duplicate]
- Why does C++ allow us to surround the variable name in parentheses when declaring a variable?
- Most vexing parse [duplicate]
- constructor invocation mechanism
- Is most vexing parse a formally defined concept
- Why does this call the default constructor?
- How is this a most vexing parse?
- Capture characters from standard input without waiting for enter to be pressed
- How to redirect cin and cout to files?
- C++ Standard Library: How to write wrappers for cout, cerr, cin and endl?
- Visual C++ equivalent of GCC’s __attribute__ ((__packed__))
- How to match multiple results using std::regex
- Deleted default constructor. Objects can still be created… sometimes
- How to store functional objects with different signatures in a container?
- Using vector as a buffer without initializing it on resize()
- How to end C++ code
- Rewinding std::cout to go back to the beginning of a line
- Why does gcc allow char array initialization with string literal larger than array?
- Why void_t doesnt work in SFINAE but enable_if does
- Can raw pointers be used instead of iterators with STL algorithms for containers with linear storage?
- Get home directory in Linux
- MinGW / CxxTest bizarre errors
- std::back_inserter for a std::set?
- How to know underlying type of class enum?
- Default values in templates with template arguments ( C++ )
- Template type deduction in C++ for Class vs Function?
- Polymorphism & Pointers to arrays [duplicate]