Skip to content

Commit

Permalink
Fix FTBFS with Boost 1.49.0
Browse files Browse the repository at this point in the history
The implementation of BOOST_PP_ITERATION_FLAGS() changed in Boost 1.49.0,
which causes Luabind to fail to build with GCC (reproduced with GCC 4.4
and GCC 4.6).

https://svn.boost.org/trac/boost/ticket/6631

http://thread.gmane.org/gmane.comp.lib.boost.devel/228802

http://article.gmane.org/gmane.comp.lib.boost.devel/228836

The work-around is to replace the pattern

 #if !defined(MACRO)
     // A
 #elif MACRO()
     // B
 #endif

with

 #if !defined(MACRO)
     // A
 #else
     #if MACRO()
         // B
     #endif
 #endif
  • Loading branch information
Peter Colberg authored and devurandom committed Sep 9, 2012
1 parent 8c66030 commit 78509cc
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
4 changes: 3 additions & 1 deletion luabind/detail/call_function.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,8 @@ namespace luabind

#endif // LUABIND_CALL_FUNCTION_HPP_INCLUDED

#elif BOOST_PP_ITERATION_FLAGS() == 1
#else
#if BOOST_PP_ITERATION_FLAGS() == 1

#define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
#define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
Expand Down Expand Up @@ -438,4 +439,5 @@ namespace luabind


#endif
#endif

4 changes: 3 additions & 1 deletion luabind/detail/call_member.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,8 @@ namespace luabind

#endif // LUABIND_CALL_MEMBER_HPP_INCLUDED

#elif BOOST_PP_ITERATION_FLAGS() == 1
#else
#if BOOST_PP_ITERATION_FLAGS() == 1

#define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
#define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
Expand Down Expand Up @@ -360,4 +361,5 @@ namespace luabind
#undef LUABIND_TUPLE_PARAMS

#endif
#endif

4 changes: 3 additions & 1 deletion luabind/wrapper_base.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,8 @@ namespace luabind

#endif // LUABIND_WRAPPER_BASE_HPP_INCLUDED

#elif BOOST_PP_ITERATION_FLAGS() == 1
#else
#if BOOST_PP_ITERATION_FLAGS() == 1

#define LUABIND_TUPLE_PARAMS(z, n, data) const A##n *
#define LUABIND_OPERATOR_PARAMS(z, n, data) const A##n & a##n
Expand Down Expand Up @@ -188,3 +189,4 @@ namespace luabind
#undef N

#endif
#endif

0 comments on commit 78509cc

Please sign in to comment.