From 1934735412c6a8aad41febe69dd642b44e8a464f Mon Sep 17 00:00:00 2001
From: g0dil <g0dil@wiback.org>
Date: Mon, 18 May 2009 13:41:31 +0000
Subject: [PATCH] Utils/Logger: Remove unneeded implemenatation detail
 (SelectName)

---
 Utils/Logger/StreamRegistry.cci | 13 ++++---------
 Utils/Logger/StreamRegistry.hh  | 10 +++-------
 2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/Utils/Logger/StreamRegistry.cci b/Utils/Logger/StreamRegistry.cci
index 02f01511b..531b0e063 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 1d098db1d..48e5c59a1 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' ...
-- 
GitLab