aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-class_override_final.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-class_override_final.cpp')
-rw-r--r--cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-class_override_final.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-class_override_final.cpp b/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-class_override_final.cpp
new file mode 100644
index 00000000..f5870b19
--- /dev/null
+++ b/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-class_override_final.cpp
@@ -0,0 +1,21 @@
+class base {
+public:
+ virtual int foo(int a)
+ { return 4 + a; }
+ int bar(int a) final
+ { return a - 2; }
+};
+
+class sub final : public base {
+public:
+ virtual int foo(int a) override
+ { return 8 + 2 * a; };
+};
+
+int main(void)
+{
+ base b;
+ sub s;
+
+ return (b.foo(2) * 2 == s.foo(2)) ? 0 : 1;
+}