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)
|
||||
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)
|
||||
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)
|
||||
target_compile_features(static_assert_iface INTERFACE cxx_static_assert)
|
||||
add_executable(CompileFeaturesGenex3 genex_test.cpp)
|
||||
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()
|
||||
|
|
|
@ -17,6 +17,17 @@ struct B final : A
|
|||
|
||||
#endif
|
||||
|
||||
#if !HAVE_NULLPTR
|
||||
#error "Expect nullptr feature"
|
||||
#else
|
||||
|
||||
const char* getString()
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
|
|
Loading…
Reference in New Issue