-
Notifications
You must be signed in to change notification settings - Fork 74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Result of BOOST_PP_ARRAY_ELEM
can't be included in vs2017 using /experimental:preprocessor
option
#25
Comments
The VC++ experimental processor has bugs even in VS2019, but more obviously in VS2017. See my reports to Microsoft at: and But thanks for your example because I will add it to the Boost PP tests and add this as a bug report to Microsoft regarding VS2017. I can not fix this for you in Boost PP because VC+ with the /experimental:preprocessor option is treated as a fully conforming C++ standard conforming preprocessor. This is as opposed to VC++ with its default preprocessor, which is not a C++ standard conforming preprocessor in many respects and for which there are numerous workarounds in Boost PP that have been made to get it to work. |
You might also want to see I reported this bug and it was fixed, but only for the latest rel;ease of VC++ in VS2019. |
Thanks for your reply here! Yes it's a VS2017 bug, but I thought there could still be workarounds that boost can do, as there has already been workarounds for many other corner cases in boost. Now since there won't be any fixes in boost regarding this issue, what about just emitting an error for VS2017 with |
The current VS2019 with the new experimental preprocessor can work with all functionality in Boost PP without errors. I suggest you switch to VS2019 and you will have no problems with Boost PP. You should now use the "/Zc:preprocessor" switch to invoke the preprocessor for VS2019. |
I have already switched as you have suggested. Could there be changes in documents so that this issue can be mentioned? |
What would you want mentioned in the documentation ? |
Probably some "warning"s in instrutions for building under msvc, indicating that |
The following code does not compile under VS2017 using
/experimental:preprocessor
option:Both
#include BAR
and#include HOGE()
directives result in C2006 error, yet,PUYO
macro could successfully get the string literal formed byBAR
.Switching to vs2019 eliminates this issue.
This issue breaks the usage of
<boost/preprocessor/iteration/detail/iter/forward1.hpp>
in `<boost/function.hpp>The text was updated successfully, but these errors were encountered: