X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6582744db5a014857b7a914815b147e88adead81..3c3343d44958102eb6acdf30efaa6cad847189b1:/src/xbt/utils/iter/iterator_wrapping.hpp diff --git a/src/xbt/utils/iter/iterator_wrapping.hpp b/src/xbt/utils/iter/iterator_wrapping.hpp index c6d2c9572a..60c73ea266 100644 --- a/src/xbt/utils/iter/iterator_wrapping.hpp +++ b/src/xbt/utils/iter/iterator_wrapping.hpp @@ -12,8 +12,8 @@ namespace simgrid::xbt { template struct ref_or_value { - using type = std::conditional_t::value, - std::reference_wrapper::type>, T>; + using type = + std::conditional_t, std::reference_wrapper>, T>; }; template using ref_or_value_t = typename ref_or_value::type; @@ -40,7 +40,6 @@ template using ref_or_value_t = typename ref_or_value::type; template struct iterator_wrapping { private: std::tuple...> m_args; - iterator_wrapping(Args&&... begin_iteration) : m_args(std::forward>(begin_iteration)...) {} template friend constexpr iterator_wrapping make_iterator_wrapping(Arguments&&... args); @@ -49,6 +48,7 @@ private: friend constexpr iterator_wrapping make_iterator_wrapping_explicit(Arguments... args); public: + iterator_wrapping(Args&&... begin_iteration) : m_args(ref_or_value_t(begin_iteration)...) {} iterator_wrapping(const iterator_wrapping&) = delete; iterator_wrapping(iterator_wrapping&&) = delete; iterator_wrapping& operator=(const iterator_wrapping&) = delete; @@ -70,7 +70,7 @@ constexpr iterator_wrapping make_iterator_wrapping(Args&&... template constexpr iterator_wrapping make_iterator_wrapping_explicit(Args... args) { - return iterator_wrapping(std::forward(args)...); + return iterator_wrapping(args...); } } // namespace simgrid::xbt