From aeea661a599cbc85a0074840b3a914e7d4e6c4b1 Mon Sep 17 00:00:00 2001 From: Vesa Karvonen Date: Tue, 22 Jan 2002 13:33:39 +0000 Subject: [PATCH] Recognized MSVC++ workaround [SVN r12437] --- include/boost/preprocessor/tuple/elem.hpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/boost/preprocessor/tuple/elem.hpp b/include/boost/preprocessor/tuple/elem.hpp index a307cb8..f4e586b 100644 --- a/include/boost/preprocessor/tuple/elem.hpp +++ b/include/boost/preprocessor/tuple/elem.hpp @@ -17,8 +17,6 @@ Click here to see the header. */ -#include - //! Expands to the I:th element of an N-tuple. /*! For example, @@ -48,8 +46,13 @@ See BOOST_PP_LIMIT_TUPLE. // This is a workaround for a CodeWarrior PP bug. Strictly speaking // this workaround invokes undefined behavior, but it works as desired. # define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_TUPLE##N##_ELEM##I##T -#else +#elif !defined(BOOST_NO_COMPILER_CONFIG) && defined(_MSC_VER) +# include +// This is a workaround for a MSVC++ PP bug. It should not be necessary +// to use BOOST_PP_EXPAND(). Works on standard conforming compilers, too. # define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_EXPAND(BOOST_PP_TUPLE##N##_ELEM##I T) +#else +# define BOOST_PP_TUPLE_ELEM_DELAY(N,I,T) BOOST_PP_TUPLE##N##_ELEM##I T #endif // NOTE: TUPLE_ELEM can be implemented in O(N*N) space and O(N) time instead