summaryrefslogtreecommitdiff
path: root/src/third_party/boost-1.56.0/boost/parameter/keyword.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/parameter/keyword.hpp')
-rwxr-xr-xsrc/third_party/boost-1.56.0/boost/parameter/keyword.hpp152
1 files changed, 0 insertions, 152 deletions
diff --git a/src/third_party/boost-1.56.0/boost/parameter/keyword.hpp b/src/third_party/boost-1.56.0/boost/parameter/keyword.hpp
deleted file mode 100755
index cfb4bfdc531..00000000000
--- a/src/third_party/boost-1.56.0/boost/parameter/keyword.hpp
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright Daniel Wallin, David Abrahams 2005. Use, modification and
-// distribution is subject to 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 KEYWORD_050328_HPP
-#define KEYWORD_050328_HPP
-
-#include <boost/parameter/aux_/unwrap_cv_reference.hpp>
-#include <boost/parameter/aux_/tag.hpp>
-#include <boost/parameter/aux_/default.hpp>
-
-namespace boost { namespace parameter {
-
-// Instances of unique specializations of keyword<...> serve to
-// associate arguments with parameter names. For example:
-//
-// struct rate_; // parameter names
-// struct skew_;
-// namespace
-// {
-// keyword<rate_> rate; // keywords
-// keyword<skew_> skew;
-// }
-//
-// ...
-//
-// f(rate = 1, skew = 2.4);
-//
-template <class Tag>
-struct keyword
-{
- template <class T>
- typename aux::tag<Tag, T>::type const
- operator=(T& x) const
- {
- typedef typename aux::tag<Tag, T>::type result;
- return result(x);
- }
-
- template <class Default>
- aux::default_<Tag, Default>
- operator|(Default& default_) const
- {
- return aux::default_<Tag, Default>(default_);
- }
-
- template <class Default>
- aux::lazy_default<Tag, Default>
- operator||(Default& default_) const
- {
- return aux::lazy_default<Tag, Default>(default_);
- }
-
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) // avoid partial ordering bugs
- template <class T>
- typename aux::tag<Tag, T const>::type const
- operator=(T const& x) const
- {
- typedef typename aux::tag<Tag, T const>::type result;
- return result(x);
- }
-#endif
-
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) // avoid partial ordering bugs
- template <class Default>
- aux::default_<Tag, const Default>
- operator|(const Default& default_) const
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- volatile
-#endif
- {
- return aux::default_<Tag, const Default>(default_);
- }
-
- template <class Default>
- aux::lazy_default<Tag, Default>
- operator||(Default const& default_) const
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
- volatile
-#endif
- {
- return aux::lazy_default<Tag, Default>(default_);
- }
-#endif
-
- public: // Insurance against ODR violations
-
- // People will need to define these keywords in header files. To
- // prevent ODR violations, it's important that the keyword used in
- // every instantiation of a function template is the same object.
- // We provide a reference to a common instance of each keyword
- // object and prevent construction by users.
- static keyword<Tag> const instance;
-
- // This interface is deprecated
- static keyword<Tag>& get()
- {
- return const_cast<keyword<Tag>&>(instance);
- }
-};
-
-template <class Tag>
-keyword<Tag> const keyword<Tag>::instance = {};
-
-// Reduces boilerplate required to declare and initialize keywords
-// without violating ODR. Declares a keyword tag type with the given
-// name in namespace tag_namespace, and declares and initializes a
-// reference in an anonymous namespace to a singleton instance of that
-// type.
-
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-# define BOOST_PARAMETER_KEYWORD(tag_namespace,name) \
- namespace tag_namespace \
- { \
- struct name \
- { \
- static char const* keyword_name() \
- { \
- return #name; \
- } \
- }; \
- } \
- static ::boost::parameter::keyword<tag_namespace::name> const& name \
- = ::boost::parameter::keyword<tag_namespace::name>::instance;
-
-#else
-
-#define BOOST_PARAMETER_KEYWORD(tag_namespace,name) \
- namespace tag_namespace \
- { \
- struct name \
- { \
- static char const* keyword_name() \
- { \
- return #name; \
- } \
- }; \
- } \
- namespace \
- { \
- ::boost::parameter::keyword<tag_namespace::name> const& name \
- = ::boost::parameter::keyword<tag_namespace::name>::instance;\
- }
-
-#endif
-
-}} // namespace boost::parameter
-
-#endif // KEYWORD_050328_HPP
-