summaryrefslogtreecommitdiff
path: root/boost/local_function/aux_/nobind.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/local_function/aux_/nobind.hpp')
-rw-r--r--boost/local_function/aux_/nobind.hpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/boost/local_function/aux_/nobind.hpp b/boost/local_function/aux_/nobind.hpp
new file mode 100644
index 0000000000..73afc6fd58
--- /dev/null
+++ b/boost/local_function/aux_/nobind.hpp
@@ -0,0 +1,32 @@
+
+// Copyright (C) 2009-2012 Lorenzo Caminiti
+// Distributed under the Boost Software License, Version 1.0
+// (see accompanying file LICENSE_1_0.txt or a copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+// Home at http://www.boost.org/libs/local_function
+
+#ifndef BOOST_LOCAL_FUNCTION_AUX_NOBIND_HPP_
+#define BOOST_LOCAL_FUNCTION_AUX_NOBIND_HPP_
+
+#include <boost/local_function/config.hpp>
+
+// NOTE: The current implementation needs no-bind placeholders only when
+// local types cannot be passed as template parameters.
+#if !BOOST_LOCAL_FUNCTION_CONFIG_LOCALS_AS_TPARAMS
+
+namespace boost { namespace local_function { namespace aux {
+
+typedef int nobind_t; // Tag no-bind type.
+
+static nobind_t nobind; // Global variable so all no-binds can reference it.
+
+// NOTE: Used only to get rid of unused static variable `nobind` (this function
+// is never actually called so it does not need to be defined).
+void no_unused_nobind_warning_(nobind_t* ptr = &nobind);
+
+} } } // namespace
+
+#endif // locals as tparams
+
+#endif // #include guard
+