From f9fda7ce067617c473055006cfc3cbed0db32eff Mon Sep 17 00:00:00 2001 From: Kohei Takahashi Date: Sun, 28 Jun 2015 19:42:08 +0900 Subject: [PATCH] Remove intermediate specialization. --- .../boost/fusion/container/vector/vector.hpp | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/include/boost/fusion/container/vector/vector.hpp b/include/boost/fusion/container/vector/vector.hpp index 3f9d52ec..b330b3a2 100644 --- a/include/boost/fusion/container/vector/vector.hpp +++ b/include/boost/fusion/container/vector/vector.hpp @@ -276,21 +276,6 @@ namespace boost { namespace fusion // template // struct SomeClass, T>> // { ... }; - template - struct vector_data, numbered_vector_tag, T...> - : vector_data::type, T...> - { - typedef vector_data::type, T...> base; - - BOOST_STATIC_ASSERT((base::size::value == N)); - - template - BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - vector_data(U&&... var) - : base(std::forward(var)...) - {} - }; - template struct construct_vector_; @@ -303,6 +288,17 @@ namespace boost { namespace fusion > type; }; + template + struct construct_vector_, T...> > + { + typedef vector_data< + typename detail::make_index_sequence::type + , T... + > type; + + BOOST_STATIC_ASSERT((type::size::value == N)); + }; + template struct construct_vector_, void_, Tail...> : construct_vector_ > {};