
On 8/24/2011 5:57 PM, Larry Evans wrote:
On 08/24/11 16:34, Edward Diener wrote: [snip]
This results in the errors reported here:
http://article.gmane.org/gmane.comp.lib.boost.devel/222795
when that line is changed to:
# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk,_)
the reported error goes away; however, several other errors occur about too many instead of too few arguments passed to BOOST_PP_CHECK_2.
Is this a BOOST_PP bug? If not; how can the errors reported in:
http://article.gmane.org/gmane.comp.lib.boost.devel/222795
be avoided?
I believe it is allowable because of placeholder expressions, but this may have been because of C99, whereas a preprocessor that does not support C99 may not work.
BTW, nothing has changed with BOOST_PP_CHECK with Boost 1.47, as the code has appeared the way it is for a long time.
What compiler are you using ? Is there a C99 or a C++0x mode you can turn on in the command line somehow ?
Here's the compile command and part of output:
/home/evansl/download/gcc/4.6.0-release/install/bin/g++ -c -Wall -ftemplate-depth-300 -O0 -fpermissive -I. -I/home/evansl/prog_dev/boost-svn/ro/boost_1_47_0 curryable.cpp In file included from /home/evansl/prog_dev/boost-svn/ro/boost_1_47_0/boost/preprocessor/iteration/detail/iter/forward2.hpp:50:0, from ./curryable.hpp:157, from /home/evansl/prog_dev/boost-svn/ro/boost_1_47_0/boost/preprocessor/iteration/detail/iter/forward1.hpp:47, from curryable.hpp:113, from curryable.cpp:1: ./curryable.hpp:117:1: error: macro "BOOST_PP_CHECK_2" requires 2 arguments, but only 1 given ./curryable.hpp:117:1: error: macro "BOOST_PP_CHECK_2" requires 2 arguments, but only 1 given
I don't see anything on the above command line that indicates a c99 or c++0x mode, except maybe the -fpermissive.
Thanks for the help.
I have Eric Niebler's curryable.h. Is that your header file renamed to curryable.hpp ? What doe curryable.cpp look like ? If I can know the exact curryable.hpp and curryable.cpp you are using I can try it out with gcc-4.6.0 using MingW under Windows and see what my results are.