Dynamsiches Array
-
pumuckl schrieb:
Oder auch:
#include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int main() { std::vector<int> numbers; typedef istream_iterator<int> intIt; std::copy(intIt(cin), intIt(), back_inserter(numbers)); }#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { typedef istream_iterator<int> intIt; vector<int> numbers(intIt(cin), intIt()); }
-
Kellerautomat schrieb:

Autsch, mein Brett vorm Kopp...
-
typedef istream_iterator<int> intIt; vector<int> numbers(intIt(cin), (intIt())); // most vexing parseAuch nur drüber gestolpert...

-
Muss nicht. Nur MSVC ist zu doof dafuer, afaik.
Edit: http://ideone.com/B9nVT
-
Kellerautomat schrieb:
Muss nicht. Nur MSVC ist zu doof dafuer, afaik.
GCC auch

-
Siehe Edit. Das ist ganz eindeutig ein Konstruktoraufruf.
-
Kellerautomat schrieb:
Siehe Edit. Das ist ganz eindeutig ein Konstruktoraufruf.
Nö, das ist ein typedef und eine Funktionsdeklaration, was natürlich kompiliert. Erst wenn du mit dem vector arbeiten willst gehts schief:
#include <iostream> #include <vector> #include <iterator> #include <algorithm> using namespace std; int main() { typedef istream_iterator<int> intIt; vector<int> numbers(intIt(cin), intIt()); copy(numbers.begin(), numbers.end(), ostream_iterator<int>(cout, "; ")); }prog.cpp: In function ‘int main()’: prog.cpp:12: error: request for member ‘begin’ in ‘numbers’, which is of non-class type ‘std::vector<int, std::allocator<int> > ()(main()::intIt, main()::intIt (*)())’ prog.cpp:12: error: request for member ‘end’ in ‘numbers’, which is of non-class type ‘std::vector<int, std::allocator<int> > ()(main()::intIt, main()::intIt (*)())’
-
Ah lol, das war natuerlich doof von mir. Aber was zur Hoelle ist denn das fuer eine Funktionsdeklaration, naemlich intIt(cin). Was soll denn das sein?

-
das cin in Klammern ist zwar ungewöhnlich, aber gültig - einfach der Name des Parameters

void foo( int (bar) ) //void foo(int bar) { std::cout << bar; }
-
Strange. Wer denkt sich denn sowas aus.
-
Kellerautomat schrieb:
Strange. Wer denkt sich denn sowas aus.
="Jack Sparrow"]Das waren die Franzosen.