$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r84224 - trunk/libs/variant/test
From: antoshkka_at_[hidden]
Date: 2013-05-10 10:08:49
Author: apolukhin
Date: 2013-05-10 10:08:49 EDT (Fri, 10 May 2013)
New Revision: 84224
URL: http://svn.boost.org/trac/boost/changeset/84224
Log:
Added one more test for multivisitors that will be used as an example in documentation (refs #8459)
Text files modified: 
   trunk/libs/variant/test/variant_multivisit_test.cpp |    23 +++++++++++++++++++++++                 
   1 files changed, 23 insertions(+), 0 deletions(-)
Modified: trunk/libs/variant/test/variant_multivisit_test.cpp
==============================================================================
--- trunk/libs/variant/test/variant_multivisit_test.cpp	(original)
+++ trunk/libs/variant/test/variant_multivisit_test.cpp	2013-05-10 10:08:49 EDT (Fri, 10 May 2013)
@@ -64,6 +64,21 @@
     }
 };
 
+typedef boost::variant<int, double, bool> bool_like_t;
+typedef boost::variant<int, double> arithmetics_t;
+
+struct if_visitor: public boost::static_visitor<arithmetics_t> {
+    template <class T1, class T2>
+    arithmetics_t operator()(bool b, T1 v1, T2 v2) const {
+        if (b) {
+            return v1;
+        } else {
+            return v2;
+        }
+    }
+};
+
+
 int test_main(int , char* [])
 {
     test_visitor v;
@@ -89,5 +104,13 @@
     boost::apply_visitor(test_visitor(), v_array6[0], v_array6[1], v_array6[2], v_array6[3], v_array6[4]);
 #endif
 
+    bool_like_t v0(1), v1(true), v2(1.0);
+
+    BOOST_CHECK(
+        boost::apply_visitor(if_visitor(), v0, v1, v2)
+        ==
+        arithmetics_t(true)
+    );
+
     return boost::exit_success;
 }