replace boost::bind with lambda, BOOST_FOREACH with range-based for, boost::assign with std::list_initializer