OSDN Git Service

Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / testsuite / util / performance / priority_queue / timing / push_pop_test.hpp
index 2186951..d3a9a73 100644 (file)
@@ -1,11 +1,11 @@
 // -*- C++ -*-
 
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the terms
 // of the GNU General Public License as published by the Free Software
-// Foundation; either version 2, or (at your option) any later
+// Foundation; either version 3, or (at your option) any later
 // version.
 
 // This library is distributed in the hope that it will be useful, but
 // General Public License for more details.
 
 // You should have received a copy of the GNU General Public License
-// along with this library; see the file COPYING.  If not, write to
-// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
-
-// As a special exception, you may use this file as part of a free
-// software library without restriction.  Specifically, if other files
-// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to
-// produce an executable, this file does not by itself cause the
-// resulting executable to be covered by the GNU General Public
-// License.  This exception does not however invalidate any other
-// reasons why the executable file might be covered by the GNU General
-// Public License.
+// along with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
 
 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
 
 #include <common_type/priority_queue/string_form.hpp>
 #include <iterator>
 
-namespace pb_ds
+namespace __gnu_pbds
 {
-
   namespace test
   {
-
     namespace detail
     {
-
       template<typename It, class Cntnr>
       class push_pop_push_pop_functor
       {
       public:
-        push_pop_push_pop_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
-                                                              m_ins_it_e(ins_it_e)
+        push_pop_push_pop_functor(It ins_it_b,  It ins_it_e) 
+       : m_ins_it_b(ins_it_b), m_ins_it_e(ins_it_e)
        { }
 
        void
@@ -76,10 +63,8 @@ namespace pb_ds
          for (std::size_t i = 0; i < resolution; ++i)
            {
              Cntnr cntnr;
-
              for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
                 cntnr.push((typename Cntnr::const_reference)(ins_it->first));
-
              while (!cntnr.empty())
                 cntnr.pop();
            }
@@ -92,94 +77,65 @@ namespace pb_ds
 
     } // namespace detail
 
-#define PB_DS_CLASS_T_DEC                      \
     template<typename It>
-
-#define PB_DS_CLASS_C_DEC                              \
-    push_pop_test<                                     \
-                                               It>
-
-    template<typename It>
-    class push_pop_test : private pb_ds::test::detail::timing_test_base
+    class push_pop_test : private __gnu_pbds::test::detail::timing_test_base
     {
     public:
-      push_pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+      push_pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm)
+      : m_ins_b(ins_b), m_ins_vn(ins_vn), m_ins_vs(ins_vs), m_ins_vm(ins_vm)
+      { }
 
       template<typename Cntnr>
       void
-      operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>);
+      operator()(Cntnr);
 
     private:
-      push_pop_test(const push_pop_test& );
+      push_pop_test(const push_pop_test&);
 
       template<typename Cntnr>
       void
-      push(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e);
+      push(Cntnr, It ins_it_b, It ins_it_e)
+      {
+       Cntnr cntnr;
+       for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+         cntnr.push((typename Cntnr::const_reference)(*ins_it));
+      }
 
-    private:
       const It m_ins_b;
-
       const size_t m_ins_vn;
       const size_t m_ins_vs;
       const size_t m_ins_vm;
     };
 
-    PB_DS_CLASS_T_DEC
-    PB_DS_CLASS_C_DEC::
-    push_pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
-      m_ins_b(ins_b),
-      m_ins_vn(ins_vn),
-      m_ins_vs(ins_vs),
-      m_ins_vm(ins_vm)
-    { }
-
-    PB_DS_CLASS_T_DEC
+    template<typename It>
     template<typename Cntnr>
     void
-    PB_DS_CLASS_C_DEC::
-    operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>)
+    push_pop_test<It>::
+    operator()(Cntnr)
     {
-      xml_result_set_performance_formatter res_set_fmt(
-                                                      string_form<Cntnr>::name(),
-                                                      string_form<Cntnr>::desc());
-
-      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+      typedef xml_result_set_performance_formatter formatter_type;
+      formatter_type res_set_fmt(string_form<Cntnr>::name(), 
+                                string_form<Cntnr>::desc());
+      for (size_t i = 0; m_ins_vn + i * m_ins_vs < m_ins_vm; ++i)
        {
-         const size_t v = m_ins_vn + size_i*  m_ins_vs;
-
+         const size_t v = m_ins_vn + i * m_ins_vs;
          It ins_it_b = m_ins_b;
          It ins_it_e = m_ins_b;
          std::advance(ins_it_e, v);
 
-         pb_ds::test::detail::push_pop_push_pop_functor<It, Cntnr>
+         __gnu_pbds::test::detail::push_pop_push_pop_functor<It, Cntnr>
             fn(ins_it_b, ins_it_e);
 
          const double res =
-            pb_ds::test::detail::timing_test_base::operator()(fn);
+            __gnu_pbds::test::detail::timing_test_base::operator()(fn);
 
          res_set_fmt.add_res(v, res / v);
        }
     }
-
-    PB_DS_CLASS_T_DEC
-    template<typename Cntnr>
-    void
-    PB_DS_CLASS_C_DEC::
-    push(__gnu_cxx::typelist::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e)
-    {
-      Cntnr cntnr;
-
-      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
-        cntnr.push((typename Cntnr::const_reference)(*ins_it));
-    }
-
-#undef PB_DS_CLASS_T_DEC
-
-#undef PB_DS_CLASS_C_DEC
-
   } // namespace test
+} // namespace __gnu_pbds
 
-} // namespace pb_ds
-
-#endif // #ifndef PB_DS_PUSH_TEST_HPP
+#endif