Hi,

 

I ran into a problem when I was replacing boost::bind expressions with lambda expressions. I could boil down the problem to the following code:

#include <boost/program_options.hpp>

 

template<typename T> void f(T t) {}

 

void g()

{

   using namespace boost::program_options;

  

   // each of the following lines produces the error:

   // Error  1      error C2871: 'validators' : a namespace with this name does not exist

   // Error  2      error C2871: 'program_options' : a namespace with this name does not exist

 

   f([]() {} );

   auto x = []() {};

}

 

 

When I try to compile this on my Microsoft Visual Studio 2010 using our Boost 1.45 library, I get a compiler errors:

Error  1      error C2871: 'validators' : a namespace with this name does not exist

Error  2      error C2871: 'program_options' : a namespace with this name does not exist

 

To me, it looks like a compiler problem but I want to make sure that I am not running into a known issue in the boost libraries. I have search the bug database, but I have not found any issues like this one. It would be nice if someone could double-check this on another platform and boost version. If it is a compiler bug, I would then file a bug report to MS.

 

Best regards,

  Jens