aggregate 'std::stringstream out' has incomplete type and cannot be defined [C++]

Technupe picture Technupe · Apr 21, 2011 · Viewed 22.4k times · Source

I am new to c++ please help me figure out what is wrong with this

string c;
stringstream out; //aggregate 'std::stringstream out' has incomplete type and cannot be //defined
out << it->second;
out << end1;//'end1' was not declared in this scope
c = out.str();

Answer

Alnitak picture Alnitak · Apr 21, 2011

Did you:

#include <sstream>

Also, the second to last line should be endl (nb: lower-case L) not end1 (number one).

The code below compiles and works correctly with G++ 4.2.1 on MacOS X

#include <iostream>
#include <sstream>

int main() {
        std::stringstream out;
        out << "foo" << std::endl;
        std::string c = out.str();
        std::cout << c;
}

Omitting the #include <sstream> causes exactly the same error on my system as your first error.