-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Missing MSVC-specific detection of some C++11 features #1023
Comments
If you open a PR and it passes CI, I am willing to merge it, but Catch Classic is no longer under development by us. However, this should work by default in Catch 2 and we promise that final release will be out real soon now. As a side note, |
Oh I'm sorry, I didn't think to check this on Catch 2. If it's fixed there then it's not important to me to PR a fix to a sunsetting branch, especially with potential side-effects of breaking it on some MSVC version that isn't tested in CI. I'll close this and switch to 2 once it's released, I only noticed because I was trying to implement the local hack mentioned in #1024. Thank you! RE: side note, in a twisted way that makes sense on their part, but pragmatically it's quite unhelpful :). Although I saw just recently that there's finally movement on that. |
It's not so much "fixed" in Catch2 as no longer in scope, since Catch2 assumes C++11 (side-stepping two-phase look-up issues), so most of the compatibility detection goes away. |
Description
In
catch_compiler_capabilities.h
there are some special-case checks on_MSVC_VER
to identify C++11/14/17 features to turn on feature macros, since __cplusplus is known to be unreliable on VS - see #697 and #479.However there doesn't seem to be any detection of a couple of these - e.g.
CATCH_CONFIG_CPP11_TUPLE
,CATCH_CONFIG_CPP11_IS_ENUM
,CATCH_CONFIG_CPP11_OVERRIDE
, andCATCH_CONFIG_CPP11_LONG_LONG
. This means the default stringifying doesn't work for tuples or enum classes, though it does if these macros are manually defined before including catch.I believe these features should be available at the following versions:
Sourced from here and here.
*Possibly earlier, this was just the earliest docs version on MSDN.
Extra information
__cplusplus
is still defined to 199711L there.The text was updated successfully, but these errors were encountered: