summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/yap/example/minimal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/yap/example/minimal.cpp')
-rw-r--r--src/boost/libs/yap/example/minimal.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/boost/libs/yap/example/minimal.cpp b/src/boost/libs/yap/example/minimal.cpp
new file mode 100644
index 00000000..d79e372f
--- /dev/null
+++ b/src/boost/libs/yap/example/minimal.cpp
@@ -0,0 +1,42 @@
+// Copyright (C) 2016-2018 T. Zachary Laine
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+#include <boost/yap/algorithm.hpp>
+
+#include <array>
+#include <iostream>
+
+
+//[ minimal_template
+template <boost::yap::expr_kind Kind, typename Tuple>
+struct minimal_expr
+{
+ static const boost::yap::expr_kind kind = Kind;
+
+ Tuple elements;
+};
+//]
+
+
+int main()
+{
+//[ minimal_template_manual_construction
+ auto left = boost::yap::make_terminal<minimal_expr>(1);
+ auto right = boost::yap::make_terminal<minimal_expr>(41);
+
+ auto expr = boost::yap::make_expression<
+ minimal_expr,
+ boost::yap::expr_kind::plus
+ >(left, right);
+//]
+
+//[ minimal_template_evaluation
+ auto result = boost::yap::evaluate(expr);
+
+ std::cout << result << "\n"; // prints "42"
+//]
+
+ return 0;
+}