Are there boost::bind issues with VS2010?

后端 未结 2 1588
长发绾君心
长发绾君心 2021-01-18 21:00

I had the following code line which compiles just fine under g++ and Visual Studio prior to 2010.

std::vector device_list;

boost::function<         


        
2条回答
  •  無奈伤痛
    2021-01-18 21:14

    This is probably because vector::push_back now has 2 overloads through support or C++0x features, making the bind ambiguous.

    void push_back(
       const Type&_Val
    );
    void push_back(
       Type&&_Val
    );
    

    This should work, or use the built-in function suggested in @DeadMG's answer:

    std::vector device_list;
    
    boost::function callback = 
      boost::bind(static_cast::*)( const Device& )>
      (&std::vector::push_back), &device_list, _1);
    

提交回复
热议问题