| #ifndef EXPECT_FINAL |
| # error EXPECT_FINAL not defined |
| #endif |
| #ifndef EXPECT_INHERITING_CONSTRUCTORS |
| # error EXPECT_INHERITING_CONSTRUCTORS not defined |
| #endif |
| #ifndef EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL |
| # error EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL not defined |
| #endif |
| #ifndef EXPECT_OVERRIDE_CONTROL |
| # error EXPECT_OVERRIDE_CONTROL not defined |
| #endif |
| |
| #if !HAVE_OVERRIDE_CONTROL |
| #if EXPECT_OVERRIDE_CONTROL |
| #error "Expect override control feature" |
| #endif |
| #else |
| #if !EXPECT_OVERRIDE_CONTROL |
| #error "Expect no override control feature" |
| #endif |
| |
| struct A |
| { |
| virtual int getA() { return 7; } |
| }; |
| |
| struct B final : A |
| { |
| int getA() override { return 42; } |
| }; |
| |
| #endif |
| |
| #if !HAVE_AUTO_TYPE |
| # error Expect cxx_auto_type support |
| #endif |
| |
| #if !HAVE_INHERITING_CONSTRUCTORS |
| # if EXPECT_INHERITING_CONSTRUCTORS |
| # error Expect cxx_inheriting_constructors support |
| # endif |
| #else |
| # if !EXPECT_INHERITING_CONSTRUCTORS |
| # error Expect no cxx_inheriting_constructors support |
| # endif |
| #endif |
| |
| #if !HAVE_FINAL |
| # if EXPECT_FINAL |
| # error Expect cxx_final support |
| # endif |
| #else |
| # if !EXPECT_FINAL |
| # error Expect no cxx_final support |
| # endif |
| #endif |
| |
| #if !HAVE_INHERITING_CONSTRUCTORS_AND_FINAL |
| # if EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL |
| # error Expect cxx_inheriting_constructors and cxx_final support |
| # endif |
| #else |
| # if !EXPECT_INHERITING_CONSTRUCTORS_AND_FINAL |
| # error Expect no combined cxx_inheriting_constructors and cxx_final support |
| # endif |
| #endif |
| |
| int main() |
| { |
| |
| } |