C++ boost转换适配器中可能存在的错误

C++ boost转换适配器中可能存在的错误,c++,boost,C++,Boost,我发现下面代码的调试版本和发布版本之间有一个bug #include <vector> #include <iostream> #include <boost/bind.hpp> #include <boost/range/algorithm.hpp> #include <boost/range/adaptors.hpp> using namespace std; namespac

我发现下面代码的调试版本和发布版本之间有一个bug

    #include <vector>
    #include <iostream>
    #include <boost/bind.hpp>
    #include <boost/range/algorithm.hpp>
    #include <boost/range/adaptors.hpp>
    using namespace std;
    namespace br = boost::range;
    namespace badpt = boost::adaptors;
    std::pair<int,int> pr_swap(std::pair<int,int> pr)
    {return make_pair(pr.second,pr.first);}

    int main()
    {
      std::vector<pair<int,int> > vec;
      vec.push_back(make_pair(1,2));
      vec.push_back(make_pair(2,1));
      br::copy(vec|badpt::transformed(bind(pr_swap,_1))|badpt::map_keys,std::ostream_iterator<int>(cout," "));
    }
如果没有我,我会得到预期的结果

    2,1

知道哪里出了问题吗?

at-O0 valgrind也运行不正常
    2,1