diff --git a/Utils/Logger/StreamRegistry.cci b/Utils/Logger/StreamRegistry.cci index 02f01511bfdcedba67c1f58ea78ba61f6489e9e4..531b0e063f39d3ffc6900b7e86a0b1bef92b4757 100644 --- a/Utils/Logger/StreamRegistry.cci +++ b/Utils/Logger/StreamRegistry.cci @@ -34,24 +34,19 @@ /////////////////////////////////////////////////////////////////////////// // senf::log::StreamRegistry -prefix_ std::string const & -senf::log::StreamRegistry::SelectName::operator()(Registry::value_type const & v) - const -{ - return v.first; -} - prefix_ senf::log::StreamRegistry::StreamRegistry() {} prefix_ senf::log::StreamRegistry::iterator senf::log::StreamRegistry::begin() { - return boost::make_transform_iterator(registry_.begin(), SelectName()); + return boost::make_transform_iterator(registry_.begin(), + ::__gnu_cxx::select1st<Registry::value_type>()); } prefix_ senf::log::StreamRegistry::iterator senf::log::StreamRegistry::end() { - return boost::make_transform_iterator(registry_.end(), SelectName()); + return boost::make_transform_iterator(registry_.end(), + ::__gnu_cxx::select1st<Registry::value_type>()); } prefix_ void senf::log::StreamRegistry::registerStream(detail::StreamBase const & stream) diff --git a/Utils/Logger/StreamRegistry.hh b/Utils/Logger/StreamRegistry.hh index 1d098db1d4a0eb3c9760a052ec12624a0305ffa6..48e5c59a1816bfc1351132d8bb73ab37cf7395c5 100644 --- a/Utils/Logger/StreamRegistry.hh +++ b/Utils/Logger/StreamRegistry.hh @@ -29,6 +29,7 @@ // Custom includes #include <map> #include <functional> +#include <ext/functional> #include <boost/iterator/transform_iterator.hpp> #include "Levels.hh" #include "../singleton.hh" @@ -55,14 +56,9 @@ namespace log { { typedef std::map<std::string, detail::StreamBase const *> Registry; - struct SelectName - { - typedef std::string result_type; - std::string const & operator()(Registry::value_type const & v) const; - }; - public: - typedef boost::transform_iterator<SelectName, Registry::const_iterator> iterator; + typedef boost::transform_iterator< ::__gnu_cxx::select1st<Registry::value_type>, + Registry::const_iterator > iterator; # ifdef DOXYGEN // Hmm ... doxygen does not understand 'using declarations' ...