⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptr.hpp

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 HPP
字号:
#ifndef PTR_DWA20020601_HPP# define PTR_DWA20020601_HPP# include <boost/python/detail/prefix.hpp>// Copyright David Abrahams 2002.// 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)//// Based on boost/ref.hpp, thus://  Copyright (C) 1999, 2000 Jaakko J鋜vi (jaakko.jarvi@cs.utu.fi)//  Copyright (C) 2001 Peter Dimov# if _MSC_VER+0 >= 1020#  pragma once# endif# include <boost/config.hpp># include <boost/mpl/bool.hpp>namespace boost { namespace python {template<class Ptr> class pointer_wrapper{  public:    typedef Ptr type;        explicit pointer_wrapper(Ptr x): p_(x) {}    operator Ptr() const { return p_; }    Ptr get() const { return p_; } private:    Ptr p_;};template<class T>inline pointer_wrapper<T> ptr(T t){     return pointer_wrapper<T>(t);}# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATIONtemplate<typename T>class is_pointer_wrapper    : public mpl::false_{};template<typename T>class is_pointer_wrapper<pointer_wrapper<T> >    : public mpl::true_{};template<typename T>class unwrap_pointer{ public:    typedef T type;};template<typename T>class unwrap_pointer<pointer_wrapper<T> >{ public:    typedef T type;};# else // no partial specialization}} // namespace boost::python#include <boost/type.hpp>namespace boost { namespace python {namespace detail{  typedef char (&yes_pointer_wrapper_t)[1];  typedef char (&no_pointer_wrapper_t)[2];        no_pointer_wrapper_t is_pointer_wrapper_test(...);  template<typename T>  yes_pointer_wrapper_t is_pointer_wrapper_test(boost::type< pointer_wrapper<T> >);  template<bool wrapped>  struct pointer_unwrapper  {      template <class T>      struct apply      {          typedef T type;      };  };  template<>  struct pointer_unwrapper<true>  {      template <class T>      struct apply      {          typedef typename T::type type;      };  };}template<typename T>class is_pointer_wrapper{ public:    BOOST_STATIC_CONSTANT(        bool, value = (        sizeof(detail::is_pointer_wrapper_test(boost::type<T>()))            == sizeof(detail::yes_pointer_wrapper_t)));    typedef mpl::bool_<value> type;};template <typename T>class unwrap_pointer    : public detail::pointer_unwrapper<        is_pointer_wrapper<T>::value      >::template apply<T>{};# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION}} // namespace boost::python#endif // #ifndef PTR_DWA20020601_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -