<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">--- Source/Checks/cm_cxx14_check.cpp.orig
+++ Source/Checks/cm_cxx14_check.cpp
@@ -1,9 +1,18 @@
+// actually use c++14 feature to force the compiler to do something,
+// since it might otherwise try to optimize all of this out even if it
+// doesn't understand it.
+#include &lt;iostream&gt;
+
 #include &lt;cstdio&gt;
 #include &lt;iterator&gt;
 #include &lt;memory&gt;
 
 int main()
 {
+  std::unique_ptr &lt; int &gt; foo = std::make_unique &lt; int &gt; (4);
+  std::cout &lt;&lt; "std::make_unique &lt; int &gt;(4) is '"
+            &lt;&lt; *foo &lt;&lt; "'" &lt;&lt; std::endl;
+
   int a[] = { 0, 1, 2 };
   auto ai = std::cbegin(a);
 
--- Source/Checks/cm_cxx17_check.cpp.orig
+++ Source/Checks/cm_cxx17_check.cpp
@@ -1,3 +1,9 @@
+// actually use c++17 feature to force the compiler to do something,
+// since it might otherwise try to optimize all of this out even if it
+// doesn't understand it.
+#include &lt;iostream&gt;
+#include &lt;string&gt;
+
 #include &lt;cstdio&gt;
 #include &lt;iterator&gt;
 #include &lt;memory&gt;
@@ -15,6 +21,15 @@
   return item.get();
 }
 
+std::optional &lt; std::string &gt;
+create
+(bool b) {
+  if (b) {
+    return "foo!";
+  }
+  return {};
+}
+
 int main()
 {
   int a[] = { 0, 1, 2 };
@@ -38,6 +53,13 @@
   IDispatchPtr disp(ptr);
 #endif
 
+  std::cout &lt;&lt; "create(false) returned "
+            &lt;&lt; create(false).value_or("empty")
+            &lt;&lt; std::endl;
+  std::cout &lt;&lt; "create(true) returned "
+            &lt;&lt; create(true).value_or("empty")
+            &lt;&lt; std::endl;
+
   std::optional&lt;int&gt; oi = 0;
 
   return *u + *ai + *(bi - 1) + (3 - static_cast&lt;int&gt;(ci)) + oi.value();
</pre></body></html>