diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:11 +0100 |
commit | 4538829ab86b5a1cd4e845e7eab165029c9d6d46 (patch) | |
tree | bbadf39aed0610c8f8f7b41fefff47773b8ac205 /libcutl/cutl/details/boost/ref.hpp | |
parent | 23d41842168ac1a1580111b9c5c73500ceee3d57 (diff) | |
parent | aad5ad9bf0c02aa4e79bc6b7d6c934612fff4026 (diff) |
Update upstream source from tag 'upstream/4.2.0'
Update to upstream version '4.2.0'
with Debian dir 1b38df7bbcf313223de3c50107ac0255090fe647
Diffstat (limited to 'libcutl/cutl/details/boost/ref.hpp')
-rw-r--r-- | libcutl/cutl/details/boost/ref.hpp | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/libcutl/cutl/details/boost/ref.hpp b/libcutl/cutl/details/boost/ref.hpp deleted file mode 100644 index 5a377c7..0000000 --- a/libcutl/cutl/details/boost/ref.hpp +++ /dev/null @@ -1,189 +0,0 @@ -#ifndef BOOST_REF_HPP_INCLUDED -#define BOOST_REF_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include <cutl/details/boost/config.hpp> -#include <cutl/details/boost/utility/addressof.hpp> -#include <cutl/details/boost/mpl/bool.hpp> -#include <cutl/details/boost/detail/workaround.hpp> - -// -// ref.hpp - ref/cref, useful helper functions -// -// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) -// Copyright (C) 2001, 2002 Peter Dimov -// Copyright (C) 2002 David Abrahams -// -// 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) -// -// See http://www.boost.org/libs/bind/ref.html for documentation. -// - -namespace cutl_details_boost -{ - -template<class T> class reference_wrapper -{ -public: - typedef T type; - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) - - explicit reference_wrapper(T& t): t_(&t) {} - -#else - - explicit reference_wrapper(T& t): t_(cutl_details_boost::addressof(t)) {} - -#endif - - operator T& () const { return *t_; } - - T& get() const { return *t_; } - - T* get_pointer() const { return t_; } - -private: - - T* t_; -}; - -# if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) -# define BOOST_REF_CONST -# else -# define BOOST_REF_CONST const -# endif - -template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t) -{ - return reference_wrapper<T>(t); -} - -template<class T> inline reference_wrapper<T const> BOOST_REF_CONST cref(T const & t) -{ - return reference_wrapper<T const>(t); -} - -# undef BOOST_REF_CONST - -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template<typename T> -class is_reference_wrapper - : public mpl::false_ -{ -}; - -template<typename T> -class unwrap_reference -{ - public: - typedef T type; -}; - -# define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(X) \ -template<typename T> \ -class is_reference_wrapper< X > \ - : public mpl::true_ \ -{ \ -}; \ -\ -template<typename T> \ -class unwrap_reference< X > \ -{ \ - public: \ - typedef T type; \ -}; \ -/**/ - -AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T>) -#if !defined(BOOST_NO_CV_SPECIALIZATIONS) -AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const) -AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> volatile) -AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const volatile) -#endif - -# undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF - -# else // no partial specialization - -} // namespace cutl_details_boost - -#include <cutl/details/boost/type.hpp> - -namespace cutl_details_boost -{ - -namespace detail -{ - typedef char (&yes_reference_wrapper_t)[1]; - typedef char (&no_reference_wrapper_t)[2]; - - no_reference_wrapper_t is_reference_wrapper_test(...); - - template<typename T> - yes_reference_wrapper_t is_reference_wrapper_test(type< reference_wrapper<T> >); - - template<bool wrapped> - struct reference_unwrapper - { - template <class T> - struct apply - { - typedef T type; - }; - }; - - template<> - struct reference_unwrapper<true> - { - template <class T> - struct apply - { - typedef typename T::type type; - }; - }; -} - -template<typename T> -class is_reference_wrapper -{ - public: - BOOST_STATIC_CONSTANT( - bool, value = ( - sizeof(detail::is_reference_wrapper_test(type<T>())) - == sizeof(detail::yes_reference_wrapper_t))); - - typedef ::cutl_details_boost::mpl::bool_<value> type; -}; - -template <typename T> -class unwrap_reference - : public detail::reference_unwrapper< - is_reference_wrapper<T>::value - >::template apply<T> -{}; - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template <class T> inline typename unwrap_reference<T>::type& -unwrap_ref(T& t) -{ - return t; -} - -template<class T> inline T* get_pointer( reference_wrapper<T> const & r ) -{ - return r.get_pointer(); -} - -} // namespace cutl_details_boost - -#endif // #ifndef BOOST_REF_HPP_INCLUDED |