mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-29 20:17:32 +02:00
Remove intermediate specialization.
This commit is contained in:
@ -276,21 +276,6 @@ namespace boost { namespace fusion
|
||||
// template <typename T>
|
||||
// struct SomeClass<vector<numbered_vector_tag<1>, T>>
|
||||
// { ... };
|
||||
template <std::size_t ...I, std::size_t N, typename ...T>
|
||||
struct vector_data<detail::index_sequence<I...>, numbered_vector_tag<N>, T...>
|
||||
: vector_data<typename detail::make_index_sequence<sizeof...(T)>::type, T...>
|
||||
{
|
||||
typedef vector_data<typename detail::make_index_sequence<sizeof...(T)>::type, T...> base;
|
||||
|
||||
BOOST_STATIC_ASSERT((base::size::value == N));
|
||||
|
||||
template <typename ...U>
|
||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||
vector_data(U&&... var)
|
||||
: base(std::forward<U>(var)...)
|
||||
{}
|
||||
};
|
||||
|
||||
template <typename V, typename... T>
|
||||
struct construct_vector_;
|
||||
|
||||
@ -303,6 +288,17 @@ namespace boost { namespace fusion
|
||||
> type;
|
||||
};
|
||||
|
||||
template <std::size_t N, typename... T>
|
||||
struct construct_vector_<vector<numbered_vector_tag<N>, T...> >
|
||||
{
|
||||
typedef vector_data<
|
||||
typename detail::make_index_sequence<sizeof...(T)>::type
|
||||
, T...
|
||||
> type;
|
||||
|
||||
BOOST_STATIC_ASSERT((type::size::value == N));
|
||||
};
|
||||
|
||||
template <typename... U, typename... Tail>
|
||||
struct construct_vector_<vector<U...>, void_, Tail...>
|
||||
: construct_vector_<vector<U...> > {};
|
||||
|
Reference in New Issue
Block a user