#include<iostream>
#include<sstream>
#include<list>
using namespace std;
int main()
{
list<char> mylist;
std::ostringstream tunnel_type;
tunnel_type <<"I";
tunnel_type <<"love";
tunnel_type <<"you";
cout<<"test list start:"<<endl;
cout<<tunnel_type<<endl;
return 1;
}
上述程序如果不添加 #include<list> ,模板类 list<char> 会报莫名的错误:
list.cc: In function 'int main()':
list.cc:9:5: error: 'list' was not declared in this scope
list<char> mylist;
^
list.cc:9:10: error: expected primary-expression before 'char'
list<char> mylist;
^
list.cc:9:10: error: expected ';' before 'char'
上述程序如果不添加 #include<sstream> ,模板类 std::ostringstream tunnel_type; 会报莫名的错误:
ist.cc: In function 'int main()':
list.cc:11:24: error: aggregate 'std::ostringstream tunnel_type' has incomplete type and cannot be defined
std::ostringstream tunnel_type;
如果不加using namespace std;编译错误如下
[root@fedora-odl-1 test]# g++ list.cc
list.cc: In function 'int main()':
list.cc:9:5: error: 'list' was not declared in this scope
list<char> mylist;
^
list.cc:9:5: note: suggested alternative:
In file included from /usr/include/c++/4.8.3/list:63:0,
from list.cc:3:
/usr/include/c++/4.8.3/bits/stl_list.h:438:11: note: 'std::list'
class list : protected _List_base<_Tp, _Alloc>
^
list.cc:9:10: error: expected primary-expression before 'char'
list<char> mylist;
^
list.cc:9:10: error: expected ';' before 'char'
list.cc:16:7: error: 'cout' was not declared in this scope
cout<<"test list start:"<<endl;
^
list.cc:16:7: note: suggested alternative:
In file included from list.cc:1:0:
/usr/include/c++/4.8.3/iostream:61:18: note: 'std::cout'
extern ostream cout; /// Linked to standard output
^
list.cc:16:33: error: 'endl' was not declared in this scope
cout<<"test list start:"<<endl;
^
list.cc:16:33: note: suggested alternative:
In file included from /usr/include/c++/4.8.3/iostream:39:0,
from list.cc:1:
/usr/include/c++/4.8.3/ostream:564:5: note: 'std::endl'
endl(basic_ostream<_CharT, _Traits>& __os)
^