I compiling the same code on both platforms (same my code, same boost code). Under Windows (MSVC++ 6 w/SP something), this compiles: // these are constructed w/values, it's just ugly here std::string sRegEx(); std::string sMe(); boost::regex regexpPattern( sRegEx ); boost::cmatch mrFound; bool bMatch = boost::regex_search(sMe, mrFound, regexpPattern); Under Linux (gcc 3.3) I get an error message (I added the whitespace): error: could not convert `mrFound' to `boost::match_results< std::__normal_iterator< const char*, std::basic_string< char, std::char_traits<char>, std::allocator<char> > >, std::allocator<char>
&'
Digging around a little bit, I found this:
template