From 3760758d4ec0b3530b6d69b5815297511323c87d Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sun, 9 Nov 2014 14:20:03 -0500 Subject: [PATCH 1/4] When the Intellisense compiler is being used wihin the Visual Studio IDE, both __EDG__ and __INTELLISENSE__ are defined along with the usual VC++ predefines. This change adjusts the Boost PP configuration to take into account that situation. --- include/boost/preprocessor/config/config.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/boost/preprocessor/config/config.hpp b/include/boost/preprocessor/config/config.hpp index 0134d88..fa5ca5b 100644 --- a/include/boost/preprocessor/config/config.hpp +++ b/include/boost/preprocessor/config/config.hpp @@ -32,7 +32,7 @@ # elif defined(__MWERKS__) && __MWERKS__ >= 0x3200 # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) # elif defined(__EDG__) || defined(__EDG_VERSION__) -# if defined(_MSC_VER) && __EDG_VERSION__ >= 308 +# if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) # else # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) @@ -75,7 +75,7 @@ # if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI # define BOOST_PP_VARIADICS 0 # /* VC++ (C/C++) */ -# elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__ && !defined __clang__ +# elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ # define BOOST_PP_VARIADICS 1 # define BOOST_PP_VARIADICS_MSVC 1 # /* Wave (C/C++), GCC (C++) */ @@ -90,7 +90,7 @@ # elif !BOOST_PP_VARIADICS + 1 < 2 # undef BOOST_PP_VARIADICS # define BOOST_PP_VARIADICS 1 -# if defined _MSC_VER && _MSC_VER >= 1400 && !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI) +# if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) # define BOOST_PP_VARIADICS_MSVC 1 # endif # else From e1ade3ea3b49a185ae662b7a3c12314559337145 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Fri, 5 Dec 2014 00:16:11 -0500 Subject: [PATCH 2/4] Changed explanation of which value should be greater for maximum efficiency. --- doc/ref/add.html | 2 +- doc/ref/add_d.html | 2 +- doc/ref/mul.html | 2 +- doc/ref/mul_d.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/ref/add.html b/doc/ref/add.html index a6681d2..569f07e 100644 --- a/doc/ref/add.html +++ b/doc/ref/add.html @@ -34,7 +34,7 @@ It is more efficient, however, to use BOOST_PP_ADD_D in such a situation.
- This macro is the most efficient when x is less than or equal to y.  + This macro is the most efficient when x is greater than or equal to y.  However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.  In other words, x should be the addend that is most likely to be the largest of the two operands.
diff --git a/doc/ref/add_d.html b/doc/ref/add_d.html index e4ead2c..26c46a0 100644 --- a/doc/ref/add_d.html +++ b/doc/ref/add_d.html @@ -34,7 +34,7 @@ If the sum of x and y is greater than BOOST_PP_LIMIT_MAG, the result is saturated to BOOST_PP_LIMIT_MAG.
- This macro is the most efficient when x is less than or equal to y.  + This macro is the most efficient when x is greater than or equal to y.  However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.  In other words, x should be the addend that is most likely to be the largest of the two operands.
diff --git a/doc/ref/mul.html b/doc/ref/mul.html index 2c2ce1a..174d88b 100644 --- a/doc/ref/mul.html +++ b/doc/ref/mul.html @@ -34,7 +34,7 @@ It is more efficient, however, to use BOOST_PP_MUL_D in such a situation.
- This macro is the most efficient when x is less than or equal to y.  + This macro is the most efficient when x is greater than or equal to y.  However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.  In other words, x should be the value that is most likely to be the largest of the two operands.
diff --git a/doc/ref/mul_d.html b/doc/ref/mul_d.html index 1881912..599fb85 100644 --- a/doc/ref/mul_d.html +++ b/doc/ref/mul_d.html @@ -34,7 +34,7 @@ If the product of x and y is greater than BOOST_PP_LIMIT_MAG, the result is saturated to BOOST_PP_LIMIT_MAG.
- This macro is the most efficient when x is less than or equal to y.  + This macro is the most efficient when x is greater than or equal to y.  However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.  In other words, x should be the value that is most likely to be the largest of the two operands.
From eedd7378f1cc1b9de17b3cb29e7864d9118b88e2 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sun, 7 Dec 2014 16:04:57 -0500 Subject: [PATCH 3/4] Added EQUAL and NOT_EQUAL to re-entrancy list. --- doc/ref/while_d_macros.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/ref/while_d_macros.html b/doc/ref/while_d_macros.html index 7d8a945..82ca63d 100644 --- a/doc/ref/while_d_macros.html +++ b/doc/ref/while_d_macros.html @@ -29,10 +29,12 @@ comparison
control