I've encountered fusion's behavior that
seems to be a bug.
#include
#include
#include
#include
#include
#include
struct s { int m; };
BOOST_FUSION_ADAPT_STRUCT(s, (int, m))
int main()
{
using namespace boost::fusion;
using boost::is_same;
typedef result_of::begin<s>::type b;
typedef result_of::end<s>::type e;
// this fails
BOOST_MPL_ASSERT((is_same));
}
Here is a patch against trunk:
Index: end_impl.hpp
===================================================================
--- end_impl.hpp (revision 42137)
+++ end_impl.hpp (working copy)
@@ -8,6 +8,7 @@
#if !defined(BOOST_FUSION_END_IMPL_24122005_1755)
#define BOOST_FUSION_END_IMPL_24122005_1755
+#include
#include
namespace boost { namespace fusion
@@ -25,7 +26,7 @@
template <typename Sequence>
struct apply
{
- typedef struct_iterator type;
+ typedef struct_iterator type;
static type
call(Sequence& v)
Regards,
Roman Perepelitsa.