[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/boostorg/python/develop/include/boost/python/back_reference.hpp [Back]  [Original]

// 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)
#ifndef BACK_REFERENCE_DWA2002510_HPP
# define BACK_REFERENCE_DWA2002510_HPP

# include 

# include 
# include 
# include 

namespace boost { namespace python { 

template 
struct back_reference
{
 private: // types
    typedef typename detail::dependent::type source_t;
 public:
    typedef T type;
    
    back_reference(PyObject*, T);
    source_t const& source() const;
    T get() const;
 private:
    source_t m_source;
    T m_value;
};

template
class is_back_reference
{
 public:
    BOOST_STATIC_CONSTANT(bool, value = false); 
};

template
class is_back_reference
{
 public:
    BOOST_STATIC_CONSTANT(bool, value = true);
};


//
// implementations
//
template 
back_reference::back_reference(PyObject* p, T x)
    : m_source(detail::borrowed_reference(p))
      , m_value(x)
{
}

template 
typename back_reference::source_t const& back_reference::source() const
{
    return m_source;
}

template 
T back_reference::get() const
{
    return m_value;
}

}} // namespace boost::python

#endif // BACK_REFERENCE_DWA2002510_HPP

Web Proxy Viewer  |  New URL  |  Original Page