Re: Enum oddity
On Aug 25, 4:20 pm, Francesco <entul...@gmail.com> wrote:
On 25 Ago, 11:44, James Kanze <james.ka...@gmail.com> wrote:
On Aug 24, 8:18 pm, Jerry Coffin <jerryvcof...@yahoo.com> wrote:
The case I run into the most is when I want to initialize the
array directly, instead of using copy:
std::vector< int > my_vector(
std::istream_iterator< int >( std::cin ),
std::istream_iterator< int >() ) ;
Stupid compiler doesn't realize that if I'm naming it
"my_vector", then I don't want a function. (And I use this
idiom a lot, since if I'm not modifying the vector later, it
allows me to declare it const.)
Sorry for replying to a post which wasn't addressed to me,
James, but the code you posted above compiles and runs fine
(it creates a vector instead of declaring a function) - at
least on my environment. Is it really expected to rise the
parsing problem?
Oops. I simplified it a little too much for posting. The
problem only occurs if you have an unqualified variable name
instead of std::cin, e.g.:
std::ifstream input( filename ) ;
std::vector< int > my_vector(
std::istream_iterator< int >( input ),
std::istream_iterator< int >() ) ;
Note that you won't get a compiler error until you try to use
my_vector as a vector; both of the above statements are
definitely legal C++, it's just that the second means something
different than what was wanted.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34