我有这个简单的程序:
#include <vector>
#include <iostream>
#include "boost/unordered_map.hpp"
int main() {
std::vector<unsigned char> v;
v.push_back('a');
std::cout << "Hello " << v[0] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
当我编译时
clang++ -I/usr/local/include -std=c++11 vec.cpp
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
vec.cpp:6:10: error: too few template arguments for class template 'vector'
std::vector<unsigned char> v;
^
/usr/local/include/boost/detail/container_fwd.hpp:86:47: note: template is declared here
template <class T, class Allocator> class vector;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
Run Code Online (Sandbox Code Playgroud)
从c ++文件中删除"include boost"行会删除错误.我在OS X 10.10.3上,我使用自制软件安装了boost,如果这有任何区别的话.从我可以看出,似乎提升是将矢量模板覆盖到非标准的东西?我该怎么办?