Compiling this code gives an error from lapack: 

Error 1 error C2589: '(' : illegal token on right side of '::' d:\3rd\include\boost\numeric\bindings\lapack\ormqr.hpp 189 

 traits::detail::array<value_type> work( std::max(1,n_w*32) );

My guess is you're hitting the problem where MSVC's Windows include files have a #define for max, so the compiler is treating the token 'max' as a macro. One solution is to put parethenses around std::max: