Features: Test nullptr as a side-effect activation of static_assert.
Because not all compilers under test support the existing 'activation features', add another test to ensure that compilers which support both static_assert and nullptr behave as expected in this test.
This commit is contained in:
parent
3e34e8331a
commit
c13656e717
@ -124,15 +124,24 @@ if (CMAKE_CXX_COMPILE_FEATURES)
|
|||||||
|
|
||||||
add_executable(CompileFeaturesGenex genex_test.cpp)
|
add_executable(CompileFeaturesGenex genex_test.cpp)
|
||||||
set_property(TARGET CompileFeaturesGenex PROPERTY CXX_STANDARD 11)
|
set_property(TARGET CompileFeaturesGenex PROPERTY CXX_STANDARD 11)
|
||||||
target_compile_definitions(CompileFeaturesGenex PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
|
target_compile_definitions(CompileFeaturesGenex PRIVATE
|
||||||
|
HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
|
||||||
|
HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr>
|
||||||
|
)
|
||||||
|
|
||||||
add_executable(CompileFeaturesGenex2 genex_test.cpp)
|
add_executable(CompileFeaturesGenex2 genex_test.cpp)
|
||||||
target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_static_assert)
|
target_compile_features(CompileFeaturesGenex2 PRIVATE cxx_static_assert)
|
||||||
target_compile_definitions(CompileFeaturesGenex2 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
|
target_compile_definitions(CompileFeaturesGenex2 PRIVATE
|
||||||
|
HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
|
||||||
|
HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr>
|
||||||
|
)
|
||||||
|
|
||||||
add_library(static_assert_iface INTERFACE)
|
add_library(static_assert_iface INTERFACE)
|
||||||
target_compile_features(static_assert_iface INTERFACE cxx_static_assert)
|
target_compile_features(static_assert_iface INTERFACE cxx_static_assert)
|
||||||
add_executable(CompileFeaturesGenex3 genex_test.cpp)
|
add_executable(CompileFeaturesGenex3 genex_test.cpp)
|
||||||
target_link_libraries(CompileFeaturesGenex3 PRIVATE static_assert_iface)
|
target_link_libraries(CompileFeaturesGenex3 PRIVATE static_assert_iface)
|
||||||
target_compile_definitions(CompileFeaturesGenex3 PRIVATE HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>)
|
target_compile_definitions(CompileFeaturesGenex3 PRIVATE
|
||||||
|
HAVE_OVERRIDE_CONTROL=$<COMPILE_FEATURES:cxx_final,cxx_override>
|
||||||
|
HAVE_NULLPTR=$<COMPILE_FEATURES:cxx_nullptr>
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@ -17,6 +17,17 @@ struct B final : A
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !HAVE_NULLPTR
|
||||||
|
#error "Expect nullptr feature"
|
||||||
|
#else
|
||||||
|
|
||||||
|
const char* getString()
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user