namespace pb_ds
{
-
namespace test
{
-
namespace detail
{
-
template<typename It, class Cntnr>
class subscript_insert_functor
{
public:
- subscript_insert_functor(It ins_it_b, It ins_it_e) : m_ins_it_b(ins_it_b),
- m_ins_it_e(ins_it_e)
+ subscript_insert_functor(It ins_it_b, It ins_it_e)
+ : m_ins_it_b(ins_it_b), m_ins_it_e(ins_it_e)
{ }
void
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[ins_it->first];
}
} // namespace detail
-#define PB_DS_CLASS_T_DEC \
- template<typename It>
-
-#define PB_DS_CLASS_C_DEC \
- subscript_insert_test< \
- It>
-
template<typename It>
class subscript_insert_test : private pb_ds::test::detail::timing_test_base
{
public:
- subscript_insert_test(It ins_b, It fnd_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm);
+ subscript_insert_test(It ins_b, It b, size_t ins_vn, size_t ins_vs,
+ size_t ins_vm, size_t vn, size_t vs, size_t vm)
+ : m_ins_b(ins_b), m_fnd_b(b), m_ins_vn(ins_vn), m_ins_vs(ins_vs),
+ m_ins_vm(ins_vm), m_fnd_vn(vn), m_fnd_vs(vs), m_fnd_vm(vm)
+ { }
template<typename Cntnr>
void
- operator()(__gnu_cxx::typelist::detail::type_to_type<Cntnr>);
+ operator()(Cntnr);
private:
subscript_insert_test(const subscript_insert_test& );
private:
const It m_ins_b;
-
const It m_fnd_b;
-
const size_t m_ins_vn;
const size_t m_ins_vs;
const size_t m_ins_vm;
-
const size_t m_fnd_vn;
const size_t m_fnd_vs;
const size_t m_fnd_vm;
};
- PB_DS_CLASS_T_DEC
- PB_DS_CLASS_C_DEC::
- subscript_insert_test(It ins_b, It fnd_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm) :
- m_ins_b(ins_b),
- m_fnd_b(fnd_b),
- m_ins_vn(ins_vn),
- m_ins_vs(ins_vs),
- m_ins_vm(ins_vm),
- m_fnd_vn(fnd_vn),
- m_fnd_vs(fnd_vs),
- m_fnd_vm(fnd_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>)
+ subscript_insert_test<It>::
+ operator()(Cntnr)
{
- xml_result_set_performance_formatter res_set_fmt(
- string_form<Cntnr>::name(),
- string_form<Cntnr>::desc());
+ typedef xml_result_set_performance_formatter formatter_type;
+ formatter_type 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)
+ 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::subscript_insert_functor<It, Cntnr>
fn(ins_it_b, ins_it_e);
res_set_fmt.add_res(v, res / v);
}
}
-
-#undef PB_DS_CLASS_T_DEC
-
-#undef PB_DS_CLASS_C_DEC
-
} // namespace test
-
} // namespace pb_ds
-#endif // #ifndef PB_DS_SUBSCRIPT_TEST_HPP
+#endif