mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-30 04:27:30 +02:00
- patch from nathan ridge
- fixed deque regression [SVN r80458]
This commit is contained in:
@ -203,7 +203,7 @@
|
|||||||
BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR_IMPL_IMPL( \
|
BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR_IMPL_IMPL( \
|
||||||
NAME, \
|
NAME, \
|
||||||
ATTRIBUTES_SEQ, \
|
ATTRIBUTES_SEQ, \
|
||||||
BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ))
|
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE((0)ATTRIBUTES_SEQ)))
|
||||||
|
|
||||||
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR_IMPL_IMPL( \
|
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_ITERATOR_IMPL_IMPL( \
|
||||||
NAME, ATTRIBUTES_SEQ, ATTRIBUTES_SEQ_SIZE) \
|
NAME, ATTRIBUTES_SEQ, ATTRIBUTES_SEQ_SIZE) \
|
||||||
@ -304,17 +304,22 @@
|
|||||||
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_MEMBERS_IMPL_IMPL( \
|
#define BOOST_FUSION_DEFINE_STRUCT_INLINE_MEMBERS_IMPL_IMPL( \
|
||||||
NAME, ATTRIBUTES_SEQ, ATTRIBUTES_SEQ_SIZE) \
|
NAME, ATTRIBUTES_SEQ, ATTRIBUTES_SEQ_SIZE) \
|
||||||
\
|
\
|
||||||
|
/* Note: second BOOST_PP_IF is necessary to avoid MSVC warning when */ \
|
||||||
|
/* calling BOOST_FUSION_IGNORE_1 with no arguments. */ \
|
||||||
NAME() \
|
NAME() \
|
||||||
BOOST_PP_IF( \
|
BOOST_PP_IF( \
|
||||||
BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ), \
|
ATTRIBUTES_SEQ_SIZE, \
|
||||||
BOOST_FUSION_MAKE_DEFAULT_INIT_LIST, \
|
BOOST_FUSION_MAKE_DEFAULT_INIT_LIST, \
|
||||||
BOOST_FUSION_IGNORE_1) \
|
BOOST_FUSION_IGNORE_1) \
|
||||||
(ATTRIBUTES_SEQ) \
|
(BOOST_PP_IF( \
|
||||||
|
ATTRIBUTES_SEQ_SIZE, \
|
||||||
|
ATTRIBUTES_SEQ, \
|
||||||
|
0)) \
|
||||||
{ \
|
{ \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
BOOST_PP_IF( \
|
BOOST_PP_IF( \
|
||||||
BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ), \
|
ATTRIBUTES_SEQ_SIZE, \
|
||||||
BOOST_FUSION_MAKE_COPY_CONSTRUCTOR, \
|
BOOST_FUSION_MAKE_COPY_CONSTRUCTOR, \
|
||||||
BOOST_FUSION_IGNORE_2) \
|
BOOST_FUSION_IGNORE_2) \
|
||||||
(NAME, ATTRIBUTES_SEQ) \
|
(NAME, ATTRIBUTES_SEQ) \
|
||||||
|
@ -93,7 +93,9 @@ namespace boost { namespace fusion { namespace detail
|
|||||||
return value_;
|
return value_;
|
||||||
}
|
}
|
||||||
|
|
||||||
keyed_element(Value const& value, Rest const& rest)
|
keyed_element(
|
||||||
|
typename detail::call_param<Value>::type value
|
||||||
|
, Rest const& rest)
|
||||||
: Rest(rest), value_(value)
|
: Rest(rest), value_(value)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
@ -38,12 +38,13 @@ namespace boost { namespace fusion { namespace detail
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static type forward_(Head&& head, Tail&&... tail)
|
template <typename Head_, typename ...Tail_>
|
||||||
|
static type forward_(Head_&& head, Tail_&&... tail)
|
||||||
{
|
{
|
||||||
return type(
|
return type(
|
||||||
std::forward<Head>(head)
|
std::forward<Head_>(head)
|
||||||
, deque_keyed_values_impl<next_index, Tail...>::
|
, deque_keyed_values_impl<next_index, Tail_...>::
|
||||||
forward_(std::forward<Tail>(tail)...)
|
forward_(std::forward<Tail_>(tail)...)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user