aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/optional/buildfile6
-rw-r--r--tests/optional/driver.cxx54
2 files changed, 60 insertions, 0 deletions
diff --git a/tests/optional/buildfile b/tests/optional/buildfile
new file mode 100644
index 0000000..68188d7
--- /dev/null
+++ b/tests/optional/buildfile
@@ -0,0 +1,6 @@
+# file : tests/optional/buildfile
+# license : MIT; see accompanying LICENSE file
+
+import libs = libbutl%lib{butl}
+
+exe{driver}: {hxx cxx}{*} $libs
diff --git a/tests/optional/driver.cxx b/tests/optional/driver.cxx
new file mode 100644
index 0000000..5dd8964
--- /dev/null
+++ b/tests/optional/driver.cxx
@@ -0,0 +1,54 @@
+// file : tests/optional/driver.cxx -*- C++ -*-
+// license : MIT; see accompanying LICENSE file
+
+#include <cassert>
+
+#ifndef __cpp_lib_modules_ts
+#include <vector>
+#include <utility> // move()
+#endif
+
+// Other includes.
+
+#ifdef __cpp_modules_ts
+#ifdef __cpp_lib_modules_ts
+import std.core;
+#endif
+import butl.optional;
+#else
+#include <libbutl/optional.mxx>
+#endif
+
+using namespace std;
+using namespace butl;
+
+struct redirect
+{
+ redirect () = default;
+
+ redirect (redirect&&) = default;
+ redirect& operator= (redirect&&) = default;
+
+ redirect (const redirect&) = delete;
+ redirect& operator= (const redirect&) = delete;
+};
+
+struct command
+{
+ butl::optional<redirect> err;
+};
+
+int
+main ()
+{
+ /*(
+ command c;
+ vector<command> cs;
+ cs.emplace_back (move (c));
+// cs.push_back (move (c));
+*/
+
+ redirect r;
+ vector<redirect> rs;
+ rs.emplace_back (move (r));
+}