Boost logo

Boost Users :

Subject: [Boost-users] Boost::bind: compiling error from sample code in book
From: Boost lzw (boostlzw_at_[hidden])
Date: 2009-09-02 12:37:07


Hi there,

I am testing the following sample code on page 264 of the book "Beyond the
C++ Standard Library" and got an error msg: "result_type' : is not a member
of '`global namespace'' from MSVC 2008 Pro compiler. Can anyone point out
what is wrong with it? Thanks.
------------
#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<algorithm>
#include "boost/bind.hpp"

class print_size {
    typedef std::map<std::string, std::vector<int> > map_type;
public:
    typedef void result_type;
    result_type operator()(std::ostream& os, const map_type::value_type& x)
const {
        os << x.second.size() << '\n';
    }
};

int main() {
    typedef std::map<std::string, std::vector<int> > map_type;
    map_type m;
    m["Strange?"].push_back(1);
    m["Strange?"].push_back(2);
    m["Wierd?"].push_back(3);
    m["Wierd?"].push_back(4);
    m["Wierd?"].push_back(5);

    std::for_each(m.begin(), m.end(),
        boost::bind(&print_size(), boost::ref(std::cout), _1));
}
------------



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net