Opened 5 years ago
Last modified 5 years ago
#13372 new Bugs
Boost Preprocessing: compiler error: macro "BOOST_PP_VARIADIC_ELEM_2" requires 4 arguments, but only 2 given
Reported by: | Owned by: | No-Maintainer | |
---|---|---|---|
Milestone: | To Be Determined | Component: | preprocessor |
Version: | Boost 1.64.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The following code produces the following compiler error when compiled with gcc 7.2.0 or clang 3.8.0
error: macro "BOOST_PP_VARIADIC_ELEM_2" requires 4 arguments, but only 2 given
#include <boost/preprocessor.hpp> #define CREATE_ENUM_ELEMENT(elementTuple) \ BOOST_PP_IF(BOOST_PP_EQUAL(BOOST_PP_TUPLE_SIZE(elementTuple), 3), \ BOOST_PP_TUPLE_ELEM(0, elementTuple) = BOOST_PP_TUPLE_ELEM(2, elementTuple), \ BOOST_PP_TUPLE_ELEM(0, elementTuple) \ ), enum class MyEnum { CREATE_ENUM_ELEMENT((El1)) }; int main() { return 0; }
(online demo: http://coliru.stacked-crooked.com/a/f01351ee7a0ca55d )
Note:
See TracTickets
for help on using tickets.
It seems that the reason is
doesn't compile with an error
in the same time
compiles
so, I have simplified the repro a bit: