summaryrefslogtreecommitdiff
path: root/boost/phoenix/core/nothing.hpp
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
committerAnas Nashif <anas.nashif@intel.com>2012-10-30 12:57:26 -0700
commit1a78a62555be32868418fe52f8e330c9d0f95d5a (patch)
treed3765a80e7d3b9640ec2e930743630cd6b9fce2b /boost/phoenix/core/nothing.hpp
downloadboost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.gz
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.tar.bz2
boost-1a78a62555be32868418fe52f8e330c9d0f95d5a.zip
Imported Upstream version 1.49.0upstream/1.49.0
Diffstat (limited to 'boost/phoenix/core/nothing.hpp')
-rw-r--r--boost/phoenix/core/nothing.hpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/boost/phoenix/core/nothing.hpp b/boost/phoenix/core/nothing.hpp
new file mode 100644
index 0000000000..c63c43aba0
--- /dev/null
+++ b/boost/phoenix/core/nothing.hpp
@@ -0,0 +1,61 @@
+/*==============================================================================
+ Copyright (c) 2005-2010 Joel de Guzman
+
+ 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)
+==============================================================================*/
+#ifndef BOOST_PHOENIX_CORE_NOTHING_HPP
+#define BOOST_PHOENIX_CORE_NOTHING_HPP
+
+#include <boost/phoenix/core/limits.hpp>
+#include <boost/mpl/void.hpp>
+#include <boost/phoenix/core/actor.hpp>
+#include <boost/phoenix/core/call.hpp>
+#include <boost/phoenix/core/expression.hpp>
+#include <boost/phoenix/core/value.hpp>
+
+namespace boost { namespace phoenix
+{
+ /////////////////////////////////////////////////////////////////////////////
+ //
+ // null_actor
+ //
+ // An actor that does nothing (a "bum", if you will :-).
+ //
+ /////////////////////////////////////////////////////////////////////////////
+
+ namespace detail
+ {
+ struct nothing {};
+ }
+
+ namespace expression
+ {
+ struct null
+ : expression::value<detail::nothing>
+ {};
+ }
+
+ template<typename Dummy>
+ struct is_custom_terminal<detail::nothing, Dummy>
+ : mpl::true_
+ {};
+
+ template<typename Dummy>
+ struct custom_terminal<detail::nothing, Dummy>
+ {
+ typedef void result_type;
+
+ template <typename Context>
+ void operator()(detail::nothing, Context &) const
+ {
+ }
+ };
+
+ typedef expression::null::type nothing_type;
+#ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS
+ nothing_type const nothing = {{{}}};
+#endif
+}}
+
+#endif