diff --git a/doc/v2/definitions.html b/doc/v2/definitions.html
index 5c21e86e..f36dc284 100644
--- a/doc/v2/definitions.html
+++ b/doc/v2/definitions.html
@@ -34,26 +34,49 @@
hidden "this" argument to member functions is not counted
when specifying arity
+
throw_error_already_set()
+ "raised", not "thrown", as they are in C++. When this documentation
+ says that some Python exception is "raised" in the context of C++ code,
+ it means that the corresponding Python exception is set via the Python/'C'
+ API, and throw_error_already_set()
is called.Revised - 30 September, 2002 + 03 October, 2002
diff --git a/doc/v2/handle.html b/doc/v2/handle.html new file mode 100644 index 00000000..2c0ffcc2 --- /dev/null +++ b/doc/v2/handle.html @@ -0,0 +1,322 @@ + + + + + + + + +|
+ |
+
+
+ Boost.Python+ +Header <boost/python/handle.hpp>+ |
+
handlehandle
+ synopsishandle
+ constructors and destructorhandle
+ modifier functionshandle
+ observer functionsborrowedallow_null<boost/python/handle.hpp> provides
+ class template handle, a smart pointer for
+ managing reference-counted Python objects.
handlehandle is a smart pointer to a Python object type; it
+ holds a pointer of type T*, where T is its template
+ parameter. T must be either a type derived from
+ PyObject or a POD
+ type whose initial sizeof(PyObject) bytes are
+ layout-compatible with PyObject. Use
+ handle<> at the boundary between tehe
+ Python/'C' API and high-level code; prefer object for a generalized
+ interface to Python objects.
+
+
In this document, the term "upcast" refers to an
+ operation which converts a pointer Y* to a base class
+ pointer T* via static_cast<T*> if
+ Y is derived from T, or via C-style cast
+ (T*) if it is not. However, in the latter case the "upcast"
+ is ill-formed if the initial sizeof(PyObject) bytes of
+ Y are not layout-compatible with PyObject.
+namespace boost { namespace python
+{
+ template <class T>
+ class handle
+ {
+ typedef unspecified-member-function-pointer bool_type;
+
+ public: // types
+ typedef T element_type;
+
+ public: // member functions
+ ~handle();
+
+ template <class Y>
+ explicit handle(detail::borrowed<null_ok<Y> >* p);
+
+ template <class Y>
+ explicit handle(null_ok<detail::borrowed<Y> >* p);
+
+ template <class Y>
+ explicit handle(detail::borrowed<Y>* p);
+
+ template <class Y>
+ explicit handle(null_ok<Y>* p);
+
+ template <class Y>
+ explicit handle(Y* p);
+
+ handle();
+
+ handle& operator=(handle const& r);
+
+ template<typename Y>
+ handle& operator=(handle<Y> const & r); // never throws
+
+
+ template <typename Y>
+ handle(handle<Y> const& r);
+
+ handle(handle const& r);
+
+ T* operator-> () const;
+ T& operator* () const;
+ T* get() const;
+ T* release();
+
+ operator bool_type() const; // never throws
+ private:
+ T* m_p;
+ };
+
+ template <class T> struct null_ok;
+ namespace detail { template <class T> struct borrowed; }
+}}
+
+
+ handle constructors
+ and destructor+virtual ~handle(); ++ +
Py_XDECREF(m_p)+template <class Y> +explicit handle(detail::borrowed<null_ok<Y> >* p); ++ +
Py_XDECREF(m_p)+template <class Y> +explicit handle(null_ok<detail::borrowed<Y> >* p); ++ +
m_p = upcast<T*>(p);+template <class Y> +explicit handle(detail::borrowed<Y>* p); ++ +
m_p = upcast<T*>(expect_non_null(p));+template <class Y> +explicit handle(null_ok<Y>* p); ++ +
Py_XINCREF(p); m_p = upcast<T*>(p);+template <class Y> +explicit handle(Y* p); ++ +
Py_XINCREF(p); m_p = upcast<T*>(expect_non_null(p));+handle(); ++ +
m_p = 0;+template <typename Y> +handle(handle<Y> const& r); +handle(handle const& r); ++ +
m_p = r.m_p; Py_XINCREF(m_p);handle
+ modifiers+handle& operator=(handle const& r); +template<typename Y> +handle& operator=(handle<Y> const & r); // never throws ++ +
Py_XINCREF(r.m_p); Py_XDECREF(m_p); m_p = r.m_p;+T* release(); ++ +
T* x = m_p; m_p = 0;return
+ x;handle
+ observers+T* operator-> () const; +T* get() const; ++ +
m_p;+T& operator* () const; ++ +
*m_p;+operator bool_type() const; // never throws ++ +
m_p == 0, a pointer
+ convertible to true otherwise.borrowed+template+ ++detail::borrowed * borrowed(T* p) +{ + return (detail::borrowed *)p; +} +
allow_null+template+ + ++null_ok * allow_null(T* p) +{ + return (null_ok *)p; +} +
Revised + + 03 October, 2002 +
+ +© Copyright Dave Abrahams 2002. All Rights + Reserved.
+ + + diff --git a/doc/v2/reference.html b/doc/v2/reference.html index 0ec9b86c..0923a434 100644 --- a/doc/v2/reference.html +++ b/doc/v2/reference.html @@ -771,24 +771,26 @@ -