@@ -60,6 +60,26 @@ struct axis_space_iterator
6060 using UpdateSignature = void (std::size_t index,
6161 std::vector<axis_index> &indices);
6262
63+ axis_space_iterator (
64+ std::size_t axes_count,
65+ std::size_t iter_count,
66+ std::function<axis_space_iterator::AdvanceSignature> &&advance,
67+ std::function<axis_space_iterator::UpdateSignature> &&update)
68+ : m_number_of_axes(axes_count)
69+ , m_iteration_size(iter_count)
70+ , m_advance(std::move(advance))
71+ , m_update(std::move(update))
72+ {}
73+
74+ axis_space_iterator (
75+ std::size_t axes_count,
76+ std::size_t iter_count,
77+ std::function<axis_space_iterator::UpdateSignature> &&update)
78+ : m_number_of_axes(axes_count)
79+ , m_iteration_size(iter_count)
80+ , m_update(std::move(update))
81+ {}
82+
6383 [[nodiscard]] bool inc ()
6484 {
6585 return this ->m_advance (m_current_index, m_iteration_size);
@@ -83,31 +103,5 @@ private:
83103 std::size_t m_current_index = 0 ;
84104};
85105
86- inline axis_space_iterator make_space_iterator (
87- std::size_t axes_count,
88- std::size_t iter_count,
89- std::function<axis_space_iterator::AdvanceSignature> &&advance,
90- std::function<axis_space_iterator::UpdateSignature> &&update)
91- {
92- axis_space_iterator iter;
93- iter.m_number_of_axes = axes_count;
94- iter.m_iteration_size = iter_count;
95- iter.m_advance = std::move (advance);
96- iter.m_update = std::move (update);
97- return iter;
98- }
99-
100- inline axis_space_iterator make_space_iterator (
101- std::size_t axes_count,
102- std::size_t iter_count,
103- std::function<axis_space_iterator::UpdateSignature> &&update)
104- {
105- axis_space_iterator iter;
106- iter.m_number_of_axes = axes_count;
107- iter.m_iteration_size = iter_count;
108- iter.m_update = std::move (update);
109- return iter;
110- }
111-
112106} // namespace detail
113107} // namespace nvbench
0 commit comments