I have partially resolved the issue. I deleted all boost libraries and headers from my machine and clean re-compiled and installed 1.43. I can now compile with unordered_map successfully. I suspect the compiler was using one version of the libraries and a different version of the headers. Unfortunately, I still cannot #include <boost/numeric/ublas/matrix_sparse.hpp> while also including rice/Data_Type and rice/Constructor. The #undefs Steven recommended don't appear to make a difference. I've included the current code below. It compiles perfectly if I comment the first line. If I replace the Data_Type.hpp header with a different rice header, it still doesn't work -- I've tried Class.hpp, String.hpp, Object.hpp, and Constructor.hpp. FYI, here's the address for rice: http://rice.rubyforge.org/main.html Thanks again, John #include <rice/Data_Type.hpp> #include <boost/numeric/ublas/matrix_sparse.hpp> int main() { return 0; } $ make g++ -I. -I. -I/usr/lib/ruby/1.8/i486-linux -I. -D_FILE_OFFSET_BITS=64 -I/usr/lib/ruby/gems/1.8/gems/rice-1.3.2/ruby/lib/include -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -Wall -g -c main.cpp In file included from /usr/local/include/boost/numeric/ublas/storage_sparse.hpp:23, from /usr/local/include/boost/numeric/ublas/vector_sparse.hpp:16, from /usr/local/include/boost/numeric/ublas/matrix_sparse.hpp:16, from main.cpp:2: /usr/local/include/boost/numeric/ublas/storage.hpp:60: error: expected primary-expression before ‘)’ token /usr/local/include/boost/numeric/ublas/storage.hpp:65: error: expected primary-expression before ‘)’ token /usr/local/include/boost/numeric/ublas/storage.hpp:79: error: expected primary-expression before ‘)’ token /usr/local/include/boost/numeric/ublas/storage.hpp: In member function ‘typename ALLOC::size_type boost::numeric::ublas::unbounded_array<T, ALLOC>::max_size() const’: /usr/local/include/boost/numeric/ublas/storage.hpp:174: error: expected primary-expression before ‘)’ token /usr/local/include/boost/numeric/ublas/storage.hpp:174: error: expected ‘;’ before ‘ruby_xmalloc’ /usr/local/include/boost/numeric/ublas/storage.hpp:174: error: expected primary-expression before ‘)’ token /usr/local/include/boost/numeric/ublas/storage.hpp: In member function ‘typename ALLOC::size_type boost::numeric::ublas::bounded_array<T, N, ALLOC>::max_size() const’: /usr/local/include/boost/numeric/ublas/storage.hpp:357: error: expected primary-expression before ‘)’ token /usr/local/include/boost/numeric/ublas/storage.hpp:357: error: expected ‘;’ before ‘ruby_xmalloc’ /usr/local/include/boost/numeric/ublas/storage.hpp:357: error: expected primary-expression before ‘)’ token In file included from /usr/local/include/boost/numeric/ublas/vector_sparse.hpp:16, from /usr/local/include/boost/numeric/ublas/matrix_sparse.hpp:16, from main.cpp:2: /usr/local/include/boost/numeric/ublas/storage_sparse.hpp: At global scope: /usr/local/include/boost/numeric/ublas/storage_sparse.hpp:240: error: expected primary-expression before ‘)’ token make: *** [main.o] Error 1