]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/move/test/bench_sort.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / move / test / bench_sort.cpp
index 59c6548b2894a304e82b00ec8c787b0e4befe825..079f2c82af699263689d33c80d566f15ac0b8e61 100644 (file)
@@ -18,6 +18,7 @@
 #include <boost/config.hpp>
 #include <boost/move/unique_ptr.hpp>
 #include <boost/move/detail/nsec_clock.hpp>
+#include <boost/move/detail/force_ptr.hpp>
 #include <cstdlib>
 
 using boost::move_detail::cpu_timer;
@@ -30,7 +31,9 @@ using boost::move_detail::nanosecond_type;
 //#define BOOST_MOVE_ADAPTIVE_SORT_INVARIANTS
 void print_stats(const char *str, boost::ulong_long_type element_count)
 {
-   std::printf("%sCmp:%7.03f Cpy:%8.03f\n", str, double(order_perf_type::num_compare)/element_count, double(order_perf_type::num_copy)/element_count );
+   std::printf( "%sCmp:%7.03f Cpy:%8.03f\n", str
+              , double(order_perf_type::num_compare)/double(element_count)
+              , double(order_perf_type::num_copy)/double(element_count) );
 }
 
 
@@ -66,21 +69,21 @@ template<class T, class Compare>
 void adaptive_sort_buffered(T *elements, std::size_t element_count, Compare comp, std::size_t BufLen)
 {
    boost::movelib::unique_ptr<char[]> mem(new char[sizeof(T)*BufLen]);
-   boost::movelib::adaptive_sort(elements, elements + element_count, comp, reinterpret_cast<T*>(mem.get()), BufLen);
+   boost::movelib::adaptive_sort(elements, elements + element_count, comp, boost::move_detail::force_ptr<T*>(mem.get()), BufLen);
 }
 
 template<class T, class Compare>
 void std_like_adaptive_stable_sort_buffered(T *elements, std::size_t element_count, Compare comp, std::size_t BufLen)
 {
    boost::movelib::unique_ptr<char[]> mem(new char[sizeof(T)*BufLen]);
-   boost::movelib::stable_sort_adaptive_ONlogN2(elements, elements + element_count, comp, reinterpret_cast<T*>(mem.get()), BufLen);
+   boost::movelib::stable_sort_adaptive_ONlogN2(elements, elements + element_count, comp, boost::move_detail::force_ptr<T*>(mem.get()), BufLen);
 }
 
 template<class T, class Compare>
 void merge_sort_buffered(T *elements, std::size_t element_count, Compare comp)
 {
    boost::movelib::unique_ptr<char[]> mem(new char[sizeof(T)*((element_count+1)/2)]);
-   boost::movelib::merge_sort(elements, elements + element_count, comp, reinterpret_cast<T*>(mem.get()));
+   boost::movelib::merge_sort(elements, elements + element_count, comp, boost::move_detail::force_ptr<T*>(mem.get()));
 }
 
 enum AlgoType
@@ -204,7 +207,7 @@ bool measure_algo(T *elements, std::size_t element_count, std::size_t alg, nanos
    nanosecond_type new_clock = timer.elapsed().wall;
 
    //std::cout << "Cmp:" << order_perf_type::num_compare << " Cpy:" << order_perf_type::num_copy;   //for old compilers without ll size argument
-   std::printf("Cmp:%7.03f Cpy:%8.03f", double(order_perf_type::num_compare)/element_count, double(order_perf_type::num_copy)/element_count );
+   std::printf("Cmp:%7.03f Cpy:%8.03f", double(order_perf_type::num_compare)/double(element_count), double(order_perf_type::num_copy)/double(element_count) );
 
    double time = double(new_clock);