summaryrefslogtreecommitdiff
path: root/constructor-constexpr-test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'constructor-constexpr-test.cpp')
-rw-r--r--constructor-constexpr-test.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/constructor-constexpr-test.cpp b/constructor-constexpr-test.cpp
new file mode 100644
index 0000000..ee2a06e
--- /dev/null
+++ b/constructor-constexpr-test.cpp
@@ -0,0 +1,40 @@
+#include <iostream>
+
+/*
+ *
+ *
+ *
+ *
+ */
+
+class Debug {
+public:
+ constexpr Debug(bool b = true): hw(b), io(b), other(b) { }
+ constexpr Debug(bool h, bool i, bool o):
+ hw(h), io(i), other(o) { }
+
+ constexpr bool any() { return hw || io || other; }
+ void set_io(bool b) { io = b; }
+ void set_hw(bool b) { hw = b; }
+ void set_other(bool b) { hw = b; }
+ void printDbg() { std::cout << hw << "\n" << io << "\n" << other << std::endl; }
+private:
+ bool hw;
+ // hardware errors other than IO errors
+ bool io;
+ // IO errors
+ bool other; // other errors
+};
+
+int main () {
+
+ /*
+ From page 299-300, i just needed to confirm what the code is doing.
+ */
+ Debug d1;
+ Debug d2(true, true, false);
+ d1.printDbg();
+ std::cout << "------" << std::endl;
+ d2.printDbg();
+ return 0;
+}