bug fix for end_impl.

[SVN r42164]
This commit is contained in:
Joel de Guzman
2007-12-19 10:33:14 +00:00
parent e9fd448376
commit 61bf0151da
2 changed files with 10 additions and 4 deletions

View File

@ -53,7 +53,7 @@ namespace boost { namespace fusion { namespace extension {
// SEQ_FOR_EACH_I to generate the "linear" substructures.
// Thanks to Paul Mensonides for the PP macro help
#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_I(name, seq) \
#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_I(name, seq) \
namespace boost { namespace fusion { namespace traits \
{ \
template <> \
@ -66,11 +66,11 @@ namespace boost { namespace fusion { namespace extension {
{ \
template <> \
struct struct_size<name> : mpl::int_<BOOST_PP_SEQ_SIZE(seq)> {}; \
BOOST_PP_SEQ_FOR_EACH_I(BOOST_FUSION_ADAPT_ASSOC_STRUCT_C, name, seq) \
BOOST_PP_SEQ_FOR_EACH_I(BOOST_FUSION_ADAPT_ASSOC_STRUCT_C, name, seq) \
}}} \
/***/
#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_C(r, name, i, xy) \
#define BOOST_FUSION_ADAPT_ASSOC_STRUCT_C(r, name, i, xy) \
template <> \
struct struct_member<name, i> \
{ \

View File

@ -9,6 +9,7 @@
#define BOOST_FUSION_END_IMPL_24122005_1755
#include <boost/fusion/adapted/struct/struct_iterator.hpp>
#include <boost/fusion/adapted/struct/detail/size_impl.hpp>
namespace boost { namespace fusion
{
@ -25,7 +26,12 @@ namespace boost { namespace fusion
template <typename Sequence>
struct apply
{
typedef struct_iterator<Sequence, 2> type;
typedef
struct_iterator<
Sequence
, size_impl<struct_tag>::template apply<Sequence>::value
>
type;
static type
call(Sequence& v)