diff --git a/doc/html/article.html b/doc/html/article.html index 4b51ed85..bd0ad6e6 100644 --- a/doc/html/article.html +++ b/doc/html/article.html @@ -3,166 +3,14 @@
- +Table of Contents
+Table of Contents
If you have both python 2.5 and python 2.4 installed, user-config.jam might contain
+
using python : 2.5 ; # Make both versions of Python available using python : 2.4 ; # To build with python 2.4, add python=2.4 # to your command line.-
- The first version configured (2.5) becomes the default. To build
- against python 2.4, add python=2.4
- to the bjam command
- line.
-
+ The first version configured (2.5) becomes the default. To build against
+ python 2.4, add python=2.4
+ to the bjam command
+ line.
+
If you have python installed in an unusual location, you might supply
the path to the interpreter in the cmd-or-prefix
parameter:
+
using python : : /usr/local/python-2.6-beta/bin/python ;-
If you have a separate build of Python for use with a particular toolset,
you might supply that toolset in the condition
parameter:
+
using python ; # use for most toolsets # Use with Intel C++ toolset @@ -170,60 +176,66 @@ : <toolset>intel # condition ;-
If you have downloaded the Python sources and built both the normal and the "python debugging" builds from source on Windows, you might see: +
using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python ; using python : 2.5 : C:\\src\\Python-2.5\\PCBuild\\python_d : # includes : # libs : <python-debugging>on ;-
You can set up your user-config.jam so a bjam built under Windows can
build/test both Windows and Cygwin_ python extensions. Just pass <target-os>cygwin
in the condition parameter
for the cygwin python installation:
+
# windows installation using python ; # cygwin installation using python : : c:\\cygwin\\bin\\python2.5 : : : <target-os>cygwin ;-
- when you put target-os=cygwin in your build request, it should build - with the cygwin version of python: _ -
++ when you put target-os=cygwin in your build request, it should build + with the cygwin version of python: _ +
bjam target-os=cygwin toolset=gcc-
- This is supposed to work the other way, too (targeting windows python - with a Cygwin bjam) but it - seems as though the support in Boost.Build's toolsets for building - that way is broken at the time of this writing. -
-+ This is supposed to work the other way, too (targeting windows python + with a Cygwin bjam) but it seems + as though the support in Boost.Build's toolsets for building that way + is broken at the time of this writing. +
+Note that because of the way Boost.Build currently selects target alternatives, you might have be very explicit in your build requests. For example, given: +
using python : 2.5 ; # a regular windows build using python : 2.4 : : : : <target-os>cygwin ;-
- building with -
++ building with +
bjam target-os=cygwin-
- will yield an error. Instead, you'll need to write -
++ will yield an error. Instead, you'll need to write +
bjam target-os=cygwin/python=2.4-
Break your source file up into multiple translation units. -
- my_module.cpp:
-
+ my_module.cpp:
+
... void more_of_my_module(); BOOST_PYTHON_MODULE(my_module) @@ -46,25 +48,25 @@ more_of_my_module(); }-
- more_of_my_module.cpp:
-
+ more_of_my_module.cpp:
+
void more_of_my_module() { def("baz", baz); ... }-
- If you find that a class_<...> declaration can't fit in
- a single source file without triggering the error, you can always pass
- a reference to the class_
- object to a function in another source file, and call some of its member
- functions (e.g. .def(...)) in the auxilliary source file:
-
- more_of_my_class.cpp:
-
+ If you find that a class_<...> declaration can't fit in a
+ single source file without triggering the error, you can always pass
+ a reference to the class_
+ object to a function in another source file, and call some of its member
+ functions (e.g. .def(...)) in the auxilliary source file:
+
+ more_of_my_class.cpp:
+
void more_of_my_class(class<my_class>& x) { x @@ -74,7 +76,7 @@ ... }-
Last revised: March 29, 2019 at 19:47:44 GMT |
+Last revised: March 04, 2021 at 17:00:22 GMT |
template <typename TBinaryFunctor,
+template <typename TBinaryFunctor,
typename TArgument1=typename TBinaryFunctor::first_argument_type,
typename TArgument2=typename TBinaryFunctor::second_argument_type,
typename TResult=typename TBinaryFunctor::result_type>
@@ -150,13 +151,13 @@
-Requires: Typenames TBinaryFunctor and optionally TArgument1 and TArgument2 for argument type and TResult for result type
+Requires: Typenames TBinaryFunctor and optionally TArgument1 and TArgument2 for argument type and TResult for result type
Effects: Passes a Python object to the underlying C++ functor after broadcasting its arguments
-template <typename TBinaryFunctor,
+template <typename TBinaryFunctor,
typename TArgument1=typename TBinaryFunctor::first_argument_type,
typename TArgument2=typename TBinaryFunctor::second_argument_type,
typename TResult=typename TBinaryFunctor::result_type>
@@ -167,7 +168,7 @@
-Requires: Typenames TBinaryFunctor and optionally TArgument1 and TArgument2 for argument type and TResult for result type
+Requires: Typenames TBinaryFunctor and optionally TArgument1 and TArgument2 for argument type and TResult for result type
Returns: A Python function object to call the overloaded () operator in the struct (in typical usage)
@@ -176,7 +177,7 @@
Example(s)
-namespace p = boost::python;
+namespace p = boost::python;
namespace np = boost::python::numpy;
struct BinarySquare
diff --git a/doc/html/numpy/reference/dtype.html b/doc/html/numpy/reference/dtype.html
index ddd630ac..f15cc374 100644
--- a/doc/html/numpy/reference/dtype.html
+++ b/doc/html/numpy/reference/dtype.html
@@ -20,6 +20,7 @@
+
@@ -69,7 +70,7 @@
dtype
A dtype is an object describing the type of the elements of an ndarray
-<boost/python/numpy/dtype.hpp> contains the method calls necessary to generate a python object equivalent to a numpy.dtype from builtin C++ objects, as well as to create custom dtypes from user defined types
+<boost/python/numpy/dtype.hpp> contains the method calls necessary to generate a python object equivalent to a numpy.dtype from builtin C++ objects, as well as to create custom dtypes from user defined types
synopsis
-namespace boost
+namespace boost
{
namespace python
{
@@ -95,7 +96,7 @@
class dtype : public object
{
static python::detail::new_reference convert(object::object_cref arg, bool align);
-public:
+public:
// Convert an arbitrary Python object to a data-type descriptor object.
template <typename T>
@@ -105,7 +106,7 @@
template <typename T> static dtype get_builtin();
// Return the size of the data type in bytes.
- int get_itemsize() const;
+ int get_itemsize() const;
};
}
@@ -116,7 +117,7 @@
constructors
-template <typename T>
+template <typename T>
explicit dtype(T arg, bool align=false)
@@ -124,7 +125,7 @@
-Requirements: T must be either :
+Requirements: T must be either :
- a built-in C++ typename convertible to object
- a valid python object or convertible to object
@@ -140,14 +141,14 @@ to object / builtin C++ data type
-template <typename T> static dtype get_builtin();
+template <typename T> static dtype get_builtin();
-Requirements: The typename supplied, T must be a builtin C++ type also supported by numpy
+Requirements: The typename supplied, T must be a builtin C++ type also supported by numpy
Returns: Numpy dtype corresponding to builtin C++ type
@@ -156,7 +157,7 @@ to object / builtin C++ data type
accessors
-int get_itemsize() const;
+int get_itemsize() const;
@@ -170,7 +171,7 @@ to object / builtin C++ data type
Example(s)
-namespace p = boost::python;
+namespace p = boost::python;
namespace np = boost::python::numpy;
np::dtype dtype = np::dtype::get_builtin<double>();
diff --git a/doc/html/numpy/reference/index.html b/doc/html/numpy/reference/index.html
index 3c24016b..6acde14c 100644
--- a/doc/html/numpy/reference/index.html
+++ b/doc/html/numpy/reference/index.html
@@ -20,6 +20,7 @@
+
diff --git a/doc/html/numpy/reference/multi_iter.html b/doc/html/numpy/reference/multi_iter.html
index 720e1402..b784fa2d 100644
--- a/doc/html/numpy/reference/multi_iter.html
+++ b/doc/html/numpy/reference/multi_iter.html
@@ -20,6 +20,7 @@
+
@@ -67,7 +68,7 @@
multi_iter
-A multi_iter is a Python object, intended to be used as an iterator It should generally only be used in loops.
+A multi_iter is a Python object, intended to be used as an iterator It should generally only be used in loops.
-<boost/python/numpy/ufunc.hpp> contains the class definitions for multi_iter
+<boost/python/numpy/ufunc.hpp> contains the class definitions for multi_iter
synopsis
-namespace boost
+namespace boost
{
namespace python
{
@@ -91,13 +92,13 @@
class multi_iter : public object
{
-public:
+public:
void next();
- bool not_done() const;
- char * get_data(int n) const;
- int const get_nd() const;
- Py_intptr_t const * get_shape() const;
- Py_intptr_t const shape(int n) const;
+ bool not_done() const;
+ char * get_data(int n) const;
+ int const get_nd() const;
+ Py_intptr_t const * get_shape() const;
+ Py_intptr_t const shape(int n) const;
};
@@ -113,7 +114,7 @@
constructors
-multi_iter make_multi_iter(object const & a1);
+multi_iter make_multi_iter(object const & a1);
multi_iter make_multi_iter(object const & a1, object const & a2);
multi_iter make_multi_iter(object const & a1, object const & a2, object const & a3);
@@ -129,7 +130,7 @@
accessors
-void next();
+void next();
@@ -140,7 +141,7 @@
-bool not_done() const;
+bool not_done() const;
@@ -151,7 +152,7 @@
-char * get_data(int n) const;
+char * get_data(int n) const;
@@ -162,7 +163,7 @@
-int const get_nd() const;
+int const get_nd() const;
@@ -173,7 +174,7 @@
-Py_intptr_t const * get_shape() const;
+Py_intptr_t const * get_shape() const;
@@ -184,7 +185,7 @@
-Py_intptr_t const shape(int n) const;
+Py_intptr_t const shape(int n) const;
diff --git a/doc/html/numpy/reference/ndarray.html b/doc/html/numpy/reference/ndarray.html
index 88fd1513..ed47cc6c 100644
--- a/doc/html/numpy/reference/ndarray.html
+++ b/doc/html/numpy/reference/ndarray.html
@@ -20,6 +20,7 @@
+
@@ -69,7 +70,7 @@
ndarray
-A ndarray is an N-dimensional array which contains items of the same type and size, where N is the number of dimensions and is specified in the form of a shape tuple. Optionally, the numpy dtype for the objects contained may also be specified.
+A ndarray is an N-dimensional array which contains items of the same type and size, where N is the number of dimensions and is specified in the form of a shape tuple. Optionally, the numpy dtype for the objects contained may also be specified.
-<boost/python/numpy/ndarray.hpp> contains the structures and methods necessary to move raw data between C++ and Python and create ndarrays from the data
+<boost/python/numpy/ndarray.hpp> contains the structures and methods necessary to move raw data between C++ and Python and create ndarrays from the data
synopsis
-namespace boost
+namespace boost
{
namespace python
{
@@ -95,7 +96,7 @@
class ndarray : public object
{
-public:
+public:
enum bitflag
{
@@ -106,25 +107,25 @@
UPDATE_ALL=0x1|0x2|0x4, VARRAY=0x1|0x2|0x8, ALL=0x1|0x2|0x4|0x8
};
- ndarray view(dtype const & dt) const;
- ndarray astype(dtype const & dt) const;
- ndarray copy() const;
- int const shape(int n) const;
- int const strides(int n) const;
- char * get_data() const;
- dtype get_dtype() const;
+ ndarray view(dtype const & dt) const;
+ ndarray astype(dtype const & dt) const;
+ ndarray copy() const;
+ int const shape(int n) const;
+ int const strides(int n) const;
+ char * get_data() const;
+ dtype get_dtype() const;
python::object get_base() const;
void set_base(object const & base);
- Py_intptr_t const * get_shape() const;
- Py_intptr_t const * get_strides() const;
- int const get_nd() const;
+ Py_intptr_t const * get_shape() const;
+ Py_intptr_t const * get_strides() const;
+ int const get_nd() const;
- bitflag const get_flags() const;
+ bitflag const get_flags() const;
- ndarray transpose() const;
- ndarray squeeze() const;
- ndarray reshape(tuple const & shape) const;
- object scalarize() const;
+ ndarray transpose() const;
+ ndarray squeeze() const;
+ ndarray reshape(tuple const & shape) const;
+ object scalarize() const;
};
ndarray zeros(tuple const & shape, dtype const & dt);
@@ -157,7 +158,7 @@
constructors
-ndarray view(dtype const & dt) const;
+ndarray view(dtype const & dt) const;
@@ -168,7 +169,7 @@
-ndarray astype(dtype const & dt) const;
+ndarray astype(dtype const & dt) const;
@@ -179,7 +180,7 @@
-ndarray copy() const;
+ndarray copy() const;
@@ -190,7 +191,7 @@
-ndarray transpose() const;
+ndarray transpose() const;
@@ -201,7 +202,7 @@
-ndarray squeeze() const;
+ndarray squeeze() const;
@@ -212,20 +213,20 @@
-ndarray reshape(tuple const & shape) const;
+ndarray reshape(tuple const & shape) const;
-Requirements: The new shape of the ndarray must be supplied as a tuple
+Requirements: The new shape of the ndarray must be supplied as a tuple
-Returns: An ndarray with the same data but reshaped to the shape supplied
+Returns: An ndarray with the same data but reshaped to the shape supplied
-object scalarize() const;
+object scalarize() const;
@@ -236,7 +237,7 @@
-ndarray zeros(tuple const & shape, dtype const & dt);
+ndarray zeros(tuple const & shape, dtype const & dt);
ndarray zeros(int nd, Py_intptr_t const * shape, dtype const & dt);
@@ -246,10 +247,10 @@
Requirements: The following parameters must be supplied as required :
-- the shape or the size of all dimensions, as a tuple
-- the dtype of the data
-- the nd size for a square shaped ndarray
-- the shape Py_intptr_t
+- the
shape or the size of all dimensions, as a tuple
+- the
dtype of the data
+- the
nd size for a square shaped ndarray
+- the
shape Py_intptr_t
@@ -258,7 +259,7 @@
-ndarray empty(tuple const & shape, dtype const & dt);
+ndarray empty(tuple const & shape, dtype const & dt);
ndarray empty(int nd, Py_intptr_t const * shape, dtype const & dt);
@@ -268,9 +269,9 @@
Requirements: The following parameters must be supplied :
-- the shape or the size of all dimensions, as a tuple
-- the dtype of the data
-- the shape Py_intptr_t
+- the
shape or the size of all dimensions, as a tuple
+- the
dtype of the data
+- the
shape Py_intptr_t
@@ -279,7 +280,7 @@
-ndarray array(object const & obj);
+ndarray array(object const & obj);
ndarray array(object const & obj, dtype const & dt);
@@ -291,7 +292,7 @@
-template <typename Container>
+template <typename Container>
inline ndarray from_data(void * data,dtype const & dt,Container shape,Container strides,python::object const & owner)
@@ -301,23 +302,23 @@
Requirements: The following parameters must be supplied :
-- the data which is a generic C++ data container
-- the dtype dt of the data
-- the shape of the ndarray as Python object
-- the strides of each dimension of the array as a Python object
-- the owner of the data, in case it is not the ndarray itself
+- the
data which is a generic C++ data container
+- the dtype
dt of the data
+- the
shape of the ndarray as Python object
+- the
strides of each dimension of the array as a Python object
+- the
owner of the data, in case it is not the ndarray itself
Returns: ndarray with attributes and data supplied
-Note: The Container typename must be one that is convertible to a std::vector or python object type
+Note: The Container typename must be one that is convertible to a std::vector or python object type
-ndarray from_object(object const & obj, dtype const & dt,int nd_min, int nd_max, ndarray::bitflag flags=ndarray::NONE);
+ndarray from_object(object const & obj, dtype const & dt,int nd_min, int nd_max, ndarray::bitflag flags=ndarray::NONE);
@@ -326,11 +327,11 @@
Requirements: The following parameters must be supplied :
-- the obj Python object to convert to ndarray
-- the dtype dt of the data
-- minimum number of dimensions nd_min of the ndarray as Python object
-- maximum number of dimensions nd_max of the ndarray as Python object
-- optional flags bitflags
+- the
obj Python object to convert to ndarray
+- the dtype
dt of the data
+- minimum number of dimensions
nd_min of the ndarray as Python object
+- maximum number of dimensions
nd_max of the ndarray as Python object
+- optional
flags bitflags
@@ -339,7 +340,7 @@
-inline ndarray from_object(object const & obj, dtype const & dt, int nd, ndarray::bitflag flags=ndarray::NONE);
+inline ndarray from_object(object const & obj, dtype const & dt, int nd, ndarray::bitflag flags=ndarray::NONE);
@@ -348,19 +349,19 @@
Requirements: The following parameters must be supplied :
-- the obj Python object to convert to ndarray
-- the dtype dt of the data
-- number of dimensions nd of the ndarray as Python object
-- optional flags bitflags
+- the
obj Python object to convert to ndarray
+- the dtype
dt of the data
+- number of dimensions
nd of the ndarray as Python object
+- optional
flags bitflags
-Returns: ndarray with dimensions nd x nd and suplied parameters
+Returns: ndarray with dimensions nd x nd and suplied parameters
-inline ndarray from_object(object const & obj, dtype const & dt, ndarray::bitflag flags=ndarray::NONE)
+inline ndarray from_object(object const & obj, dtype const & dt, ndarray::bitflag flags=ndarray::NONE)
@@ -369,9 +370,9 @@
Requirements: The following parameters must be supplied :
-- the obj Python object to convert to ndarray
-- the dtype dt of the data
-- optional flags bitflags
+- the
obj Python object to convert to ndarray
+- the dtype
dt of the data
+- optional
flags bitflags
@@ -380,7 +381,7 @@
-ndarray from_object(object const & obj, int nd_min, int nd_max, ndarray::bitflag flags=ndarray::NONE);
+ndarray from_object(object const & obj, int nd_min, int nd_max, ndarray::bitflag flags=ndarray::NONE);
@@ -389,10 +390,10 @@
Requirements: The following parameters must be supplied :
-- the obj Python object to convert to ndarray
-- minimum number of dimensions nd_min of the ndarray as Python object
-- maximum number of dimensions nd_max of the ndarray as Python object
-- optional flags bitflags
+- the
obj Python object to convert to ndarray
+- minimum number of dimensions
nd_min of the ndarray as Python object
+- maximum number of dimensions
nd_max of the ndarray as Python object
+- optional
flags bitflags
@@ -404,7 +405,7 @@
-inline ndarray from_object(object const & obj, int nd, ndarray::bitflag flags=ndarray::NONE);
+inline ndarray from_object(object const & obj, int nd, ndarray::bitflag flags=ndarray::NONE);
@@ -413,19 +414,19 @@
Requirements: The following parameters must be supplied :
-- the obj Python object to convert to ndarray
-- the dtype dt of the data
-- number of dimensions nd of the ndarray as Python object
-- optional flags bitflags
+- the
obj Python object to convert to ndarray
+- the dtype
dt of the data
+- number of dimensions
nd of the ndarray as Python object
+- optional
flags bitflags
-Returns: ndarray of nd x nd dimensions constructed from the supplied object
+Returns: ndarray of nd x nd dimensions constructed from the supplied object
-inline ndarray from_object(object const & obj, ndarray::bitflag flags=ndarray::NONE)
+inline ndarray from_object(object const & obj, ndarray::bitflag flags=ndarray::NONE)
@@ -434,8 +435,8 @@
Requirements: The following parameters must be supplied :
-- the obj Python object to convert to ndarray
-- optional flags bitflags
+- the
obj Python object to convert to ndarray
+- optional
flags bitflags
@@ -447,7 +448,7 @@
accessors
-int const shape(int n) const;
+int const shape(int n) const;
@@ -458,7 +459,7 @@
-int const strides(int n) const;
+int const strides(int n) const;
@@ -469,53 +470,53 @@
-char * get_data() const;
+char * get_data() const;
-Returns: Array’s raw data pointer as a char
+Returns: Array’s raw data pointer as a char
Note: This returns char so stride math works properly on it.User will have to reinterpret_cast it.
-dtype get_dtype() const;
+dtype get_dtype() const;
-Returns: Array’s data-type descriptor object (dtype)
+Returns: Array’s data-type descriptor object (dtype)
-object get_base() const;
+object get_base() const;
-Returns: Object that owns the array’s data, or None if the array owns its own data.
+Returns: Object that owns the array’s data, or None if the array owns its own data.
-void set_base(object const & base);
+void set_base(object const & base);
-Returns: Set the object that owns the array’s data. Exercise caution while using this
+Returns: Set the object that owns the array’s data. Exercise caution while using this
-Py_intptr_t const * get_shape() const;
+Py_intptr_t const * get_shape() const;
@@ -526,7 +527,7 @@
-Py_intptr_t const * get_strides() const;
+Py_intptr_t const * get_strides() const;
@@ -537,7 +538,7 @@
-int const get_nd() const;
+int const get_nd() const;
@@ -548,7 +549,7 @@
-bitflag const get_flags() const;
+bitflag const get_flags() const;
@@ -559,7 +560,7 @@
-inline ndarray::bitflag operator|(ndarray::bitflag a, ndarray::bitflag b)
+inline ndarray::bitflag operator|(ndarray::bitflag a, ndarray::bitflag b)
@@ -570,7 +571,7 @@
-inline ndarray::bitflag operator&(ndarray::bitflag a, ndarray::bitflag b)
+inline ndarray::bitflag operator&(ndarray::bitflag a, ndarray::bitflag b)
@@ -584,7 +585,7 @@
Example(s)
-namespace p = boost::python;
+namespace p = boost::python;
namespace np = boost::python::numpy;
p::object tu = p::make_tuple('a','b','c') ;
diff --git a/doc/html/numpy/reference/unary_ufunc.html b/doc/html/numpy/reference/unary_ufunc.html
index e78b9e34..4f6c6012 100644
--- a/doc/html/numpy/reference/unary_ufunc.html
+++ b/doc/html/numpy/reference/unary_ufunc.html
@@ -20,6 +20,7 @@
+
@@ -69,7 +70,7 @@
unary_ufunc
-A unary_ufunc is a struct used as an intermediate step to broadcast a single argument so that a C++ function can be converted to a ufunc like function
+A unary_ufunc is a struct used as an intermediate step to broadcast a single argument so that a C++ function can be converted to a ufunc like function
-<boost/python/numpy/ufunc.hpp> contains the unary_ufunc structure definitions
+<boost/python/numpy/ufunc.hpp> contains the unary_ufunc structure definitions
synopsis
-namespace boost
+namespace boost
{
namespace python
{
@@ -113,7 +114,7 @@
constructors
-struct example_unary_ufunc
+struct example_unary_ufunc
{
typedef any_valid_type argument_type;
typedef any_valid_type result_type;
@@ -124,16 +125,16 @@
-Requirements: The any_valid type must be defined using typedef as a valid C++ type in order to use the struct methods correctly
+Requirements: The any_valid type must be defined using typedef as a valid C++ type in order to use the struct methods correctly
-Note: The struct must be exposed as a Python class, and an instance of the class must be created to use the call method corresponding to the __call__ attribute of the Python object
+Note: The struct must be exposed as a Python class, and an instance of the class must be created to use the call method corresponding to the __call__ attribute of the Python object
accessors
-template <typename TUnaryFunctor,
+template <typename TUnaryFunctor,
typename TArgument=typename TUnaryFunctor::argument_type,
typename TResult=typename TUnaryFunctor::result_type>
static object call(TUnaryFunctor & self,
@@ -145,13 +146,13 @@
-Requires: Typenames TUnaryFunctor and optionally TArgument for argument type and TResult for result type
+Requires: Typenames TUnaryFunctor and optionally TArgument for argument type and TResult for result type
Effects: Passes a Python object to the underlying C++ functor after broadcasting its arguments
-template <typename TUnaryFunctor,
+template <typename TUnaryFunctor,
typename TArgument=typename TUnaryFunctor::argument_type,
typename TResult=typename TUnaryFunctor::result_type>
static object make();
@@ -161,7 +162,7 @@
-Requires: Typenames TUnaryFunctor and optionally TArgument for argument type and TResult for result type
+Requires: Typenames TUnaryFunctor and optionally TArgument for argument type and TResult for result type
Returns: A Python function object to call the overloaded () operator in the struct (in typical usage)
@@ -170,14 +171,14 @@
Example(s)
-namespace p = boost::python;
+namespace p = boost::python;
namespace np = boost::python::numpy;
struct UnarySquare
{
typedef double argument_type;
typedef double result_type;
- double operator()(double r) const { return r * r;}
+ double operator()(double r) const { return r * r;}
};
p::object ud = p::class_<UnarySquare, boost::shared_ptr<UnarySquare> >("UnarySquare").def("__call__", np::unary_ufunc<UnarySquare>::make());
diff --git a/doc/html/numpy/search.html b/doc/html/numpy/search.html
index ad198d09..eb0b1f45 100644
--- a/doc/html/numpy/search.html
+++ b/doc/html/numpy/search.html
@@ -20,7 +20,7 @@
-
+
diff --git a/doc/html/numpy/searchindex.js b/doc/html/numpy/searchindex.js
index 3853ca71..0e4f075a 100644
--- a/doc/html/numpy/searchindex.js
+++ b/doc/html/numpy/searchindex.js
@@ -1 +1 @@
-Search.setIndex({envversion:42,terms:{all:8,namepac:4,interchang:8,scalar:[10,8,12,9],follow:8,row:[4,8],set_bas:8,"const":[0,2,4,5,6,8,9,10,11,12],uint8_t:[4,8],intermedi:[10,11],tresult:[10,11],introduc:4,sourc:0,string:[6,2],fals:12,"void":[8,5],failur:6,list:[2,4,9,6,8,11],iter:5,"try":[4,9],item:8,vector:8,initialis:[6,4,9],dimens:[8,2,5],"0x8":8,"0x2":8,"0x1":8,"0x0":8,"0x4":8,zero:[6,4,8,2],pass:[0,10,4,2,11],"4x2":4,append:[4,2,9],cast:[8,9],brief:2,overload:[10,11,9],access:1,object_cref:12,second_argument_typ:[11,9],method:[0,2,4,9,8,10,11,12],gener:[12,4,8,5,9],here:[6,4,8,2],let:[6,4,9],modifi:6,valu:[0,6,2,5,9],convert:[2,6,8,10,11,12],data_ex1:4,nd_min:8,pick:4,typic:[10,11],binary_ufunc:1,danger:4,dtype:1,modul:[0,6,2,9],"boolean":5,select:4,from:[8,4,2,12],describ:12,univers:9,two:[11,9,5],next:[0,4,2,5],few:4,call:[4,9,6,8,10,11,12],type:[2,4,9,6,8,10,11,12],more:[4,2],correspondingli:0,desir:4,get_dtyp:[8,2],notic:4,flag:8,templat:[10,11,8,2,12],must:[4,9,8,10,11,12],dictat:4,none:[4,8],setup:[0,2],work:8,carray_mi:8,descriptor:[8,12],can:[0,2,4,9,6,10,11],for_custom_dtyp:[2,12],def:[10,11,9],input2:11,input1:11,indic:5,tbinaryfunctor:11,minimum:8,caution:8,end:[0,5],travel:4,how:1,simpl:[1,4,3],make_tupl:[0,2,4,9,6,8,12],after:[10,11,9],reflect:0,class_:[10,11,9],inst:[10,11,9],mai:8,shared_ptr:[10,11,9],data:[1,8,2,12],reshap:[6,8],third:4,carray_ro:8,explicit:12,correspond:[10,11,4,2,12],element:[0,4,5,8,9,12],example_list1:[4,8],order:[10,11],oper:[10,11,8,9],over:5,move:8,becaus:[0,4],new_refer:12,own:[4,8],pointer:[1,8,5],make_multi_it:5,paramet:[6,4,8],typedef:[10,11,9],get_shap:[8,5],main:[0,6,4,2,9],supli:8,non:4,"return":[4,5,8,9,10,11,12],thei:0,demo_arrai:[11,9],initi:[0,2,4,9,6,8],now:[0,4,2,9],name:2,binarysquar:[11,9],neccessari:9,each:[6,4,8],from_object:8,functor:[10,11],"static":[10,11,12],happen:0,extract:[0,2,4,9,6,10,11],out:[4,9],targument:10,astyp:8,typenam:[10,11,8,12],print:[0,6,4,2,9],math:8,iostream:[0,6,4,2,9],manipul:4,argv:[0,6,4,2,9],nth:[8,5],base:8,"byte":[4,12],argc:[0,6,4,2,9],befor:[0,4,2],keep:4,stride:[4,8],update_al:8,assign:9,first:[0,6,4,2],origin:[6,4,2],directli:4,arrai:[0,1,2,3,4,5,8],number:[4,8,5],done:4,wrapper:0,owner:[4,8],size:[8,2,12],given:[8,12],associ:12,result_arrai:[11,9],construct:[4,8,12],dt1:[4,8],"final":2,store:0,mul_data:[4,8],option:[10,11,4,8],namespac:[0,2,4,5,6,8,9,10,11,12],copi:8,custom_dtyp:[2,12],specifi:[8,4,2],broadcast:[10,11,9,5],part:4,std:[0,2,4,9,6,8,10,11],reinterpret_cast:8,remov:8,structur:[10,11,8],charact:2,str:[0,2,4,9,6,10,11],multi_it:[1,7],uniniti:8,ani:4,raw:[1,8],increment:5,need:[4,8],squar:[10,11,8,9],equival:12,self:[10,11],note:[10,11,8],also:[6,4,8,2,12],builtin:[2,12],build:2,which:[6,4,8],example_binary_ufunc:11,noth:12,singl:[10,4],track:4,object:[0,4,5,8,9,10,11,12],contain:[2,4,5,8,10,11,12],segment:6,"class":[9,8,5,10,11,12],don:4,example_list:[4,8],cover:4,runtim:[0,6,4,2,9],targument1:11,targument2:11,show:2,"3x2":4,"3x3":[6,2],"3x4":4,carrai:8,onli:[8,5],locat:0,py_intptr_t:[8,5],should:[2,5],"__call__":[10,11,9],c_contigu:8,get:[0,6,4,2,12],express:5,"new":[4,8],requir:[10,11,8,12],farrai:8,"public":[8,12,5],example_tupl:[4,8],f_contigu:8,result_typ:[10,11,9],where:8,view:8,arr:[0,9],set:[6,8],datatyp:[6,4,2],see:[0,9],result:[6,10,9,11],arg:12,get_builtin:[0,2,4,9,6,8,12],argument_typ:[10,9],farray_ro:8,correctli:[10,11],tunaryfunctor:10,across:0,attribut:[10,11,8],entir:8,endl:[0,2,4,9,6,10,11],both:[0,4,9],last:4,instanc:[10,11,9],logic:8,get_items:12,unarysquar:[10,9],header:[0,6,2],suppli:[4,8,5,12],data_ex:[4,8],quit:4,not_don:5,three:5,empti:[6,4,8],compon:6,first_argument_typ:[11,9],interest:4,argument:[10,11,4,2],"case":8,"char":[0,2,4,5,6,8,9,10,11],multi:4,get_nd:[8,5],align:[8,12],defin:[10,11,12],"while":[4,8],error:[6,9],loop:5,bitflag:8,have:[4,8],advantag:0,readi:2,demo:9,get_strid:8,itself:8,perform:9,make:[0,10,4,9,11],same:[0,4,8,9],member:2,binari:[11,9],tutori:[1,2],behav:8,list_for_dtyp:[2,12],effect:[10,11,12,5],user:[8,12],chang:0,built:[6,4,2,12],thu:0,well:[0,4,12],thi:[0,6,4,8,2],dimension:[6,4,8],left:8,unari:[10,9],get_data:[8,5],cout:[0,2,4,9,6,10,11],new_arrai:2,shape:[6,4,8,2,5],dtpye:2,struct:[10,11,9],expos:[10,11,4,9],example_unary_ufunc:10,littl:4,add:[4,2],valid:[10,11,12],exercis:8,input:[10,11,9],ufunc:[10,1,11,5,3],match:4,take:[4,2,9],format:2,bit:4,like:[0,6,10,2,11],arbitrari:[4,8,12],integ:[4,8,5],necessari:[0,2,4,9,6,8,12],either:12,output:[10,11,9],underli:[10,11],old:8,some:4,sizeof:[0,4],librari:4,definit:[10,11,5],py_arrai:0,unit:[4,8],refer:1,"enum":8,usag:[10,11],step:[10,11],error_already_set:4,squeez:8,between:8,py_initi:[0,6,4,2,9],obj:8,v_contigu:8,column:[4,8],transpos:8,nd_max:8,doubl:[10,11,2,9,12],"float":6,get_bas:8,wai:4,support:[12,9],custom:[2,12],start:6,includ:[0,6,4,2,9],from_data:[0,4,8,9],get_flag:8,farray_mi:8,"function":[10,11,4,9],properli:8,form:8,mul_data_ex:[4,8],tupl:[6,4,8,2,12],unary_ufunc:[1,7],inlin:8,"throw":[4,12],made:[0,9],attr:[10,11,9],possibl:0,whether:5,writeabl:8,maximum:8,limit:8,otherwis:[8,9],featur:9,creat:[0,1,2,3,8,10,11,12],"int":[0,2,4,5,6,8,9,12],any_valid:[10,11],implement:9,varrai:8,check:0,any_valid_typ:10,fill:[6,4],again:[6,9],hpp:[0,2,4,5,6,8,9,10,11,12],detail:12,other:[4,9],bool:[12,5],varieti:4,you:[6,4],variabl:2,intend:5,sequenc:[4,8,5],ndarrai:[1,12,7],multidimension:4},objtypes:{},objnames:{},filenames:["tutorial/fromdata","index","tutorial/dtype","tutorial/index","tutorial/ndarray","reference/multi_iter","tutorial/simple","reference/index","reference/ndarray","tutorial/ufunc","reference/unary_ufunc","reference/binary_ufunc","reference/dtype"],titles:["How to access data using raw pointers","Welcome to the documentation of the Boost.Python NumPy extension!","How to use dtypes","Boost.Python NumPy extension Tutorial","Creating ndarrays","multi_iter","A simple tutorial on Arrays","Boost.Python NumPy extension Reference","ndarray","Ufuncs","unary_ufunc","binary_ufunc","dtype"],objects:{},titleterms:{binary_ufunc:11,creat:4,dtype:[2,12],arrai:6,raw:0,tabl:[10,11,8,12,5],pointer:0,content:[10,11,8,12,5],welcom:1,numpi:[1,7,3],access:0,how:[0,2],exampl:[10,11,8,12],ufunc:9,document:1,boost:[1,7,3],refer:7,synopsi:[10,11,8,12,5],python:[1,7,3],ndarrai:[4,8],extens:[1,7,3],unary_ufunc:10,data:0,accessor:[10,11,8,12,5],simpl:6,tutori:[6,3],constructor:[10,11,8,12,5],multi_it:5}})
\ No newline at end of file
+Search.setIndex({docnames:["index","reference/binary_ufunc","reference/dtype","reference/index","reference/multi_iter","reference/ndarray","reference/unary_ufunc","tutorial/dtype","tutorial/fromdata","tutorial/index","tutorial/ndarray","tutorial/simple","tutorial/ufunc"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["index.rst","reference/binary_ufunc.rst","reference/dtype.rst","reference/index.rst","reference/multi_iter.rst","reference/ndarray.rst","reference/unary_ufunc.rst","tutorial/dtype.rst","tutorial/fromdata.rst","tutorial/index.rst","tutorial/ndarray.rst","tutorial/simple.rst","tutorial/ufunc.rst"],objects:{},objnames:{},objtypes:{},terms:{"0x0":5,"0x1":5,"0x2":5,"0x4":5,"0x8":5,"3x2":10,"3x3":[7,11],"3x4":10,"4x2":10,"boolean":4,"byte":[2,10],"case":5,"char":[1,4,5,6,7,8,10,11,12],"class":[1,2,4,5,6,12],"const":[1,2,4,5,6,7,8,10,11,12],"enum":5,"final":7,"float":11,"function":[1,6,10,12],"int":[2,4,5,7,8,10,11,12],"new":[5,10],"public":[2,4,5],"return":[1,2,4,5,6,10,12],"static":[1,2,6],"throw":[2,10],"try":[10,12],"void":[4,5],"while":[5,10],AND:5,And:12,For:10,One:8,The:[1,2,5,6,7,8,10,11,12],Then:7,Use:12,__call__:[1,6,12],access:[0,9],accessor:3,across:8,add:[7,10],advantag:8,after:[1,6,12],again:[11,12],align:[2,5],all:5,also:[2,5,7,10,11],ani:10,any_valid:[1,6],any_valid_typ:6,append:[7,10,12],arbitrari:[2,5,10],arg:2,argc:[7,8,10,11,12],argument:[1,6,7,10],argument_typ:[6,12],argv:[7,8,10,11,12],arr:[8,12],arrai:[0,4,5,7,8,9,10,12],assign:12,associ:2,astyp:5,attr:[1,6,12],attribut:[1,5,6],base:5,becaus:[8,10],befor:[7,8,10],behav:5,between:5,binari:[1,12],binary_ufunc:[0,3,12],binarysquar:[1,12],bit:10,bitflag:5,bool:[2,4],boost:[1,2,4,5,6,7,8,10,11,12],both:[8,10,12],brief:7,broadcast:[1,4,6,12],build:7,built:[2,7,10,11],builtin:[2,7],c_contigu:5,call:[1,2,5,6,10,11,12],can:[1,6,7,8,10,11,12],carrai:5,carray_mi:5,carray_ro:5,cast:[5,12],caution:5,chang:8,charact:7,check:8,class_:[1,6,12],column:[5,10],compon:11,construct:[2,5,10],constructor:[3,7],contain:[1,2,4,5,6,7,10],convert:[1,2,5,6,7,11],copi:5,correctli:[1,6],correspond:[1,2,6,7,10],correspondingli:8,cout:[1,6,7,8,10,11,12],cover:10,creat:[0,1,2,5,6,7,8,9,11,12],custom:[2,7],custom_dtyp:[2,7],danger:10,data:[0,2,5,7,9,10,11],data_ex1:10,data_ex:[5,10],datatyp:[7,10,11],def:[1,6,12],defin:[1,2,6],definit:[1,4,6],demo:12,demo_arrai:[1,12],describ:2,descriptor:[2,5],desir:10,detail:2,dictat:10,dimens:[4,5,7],dimension:[5,10,11],directli:10,don:10,done:10,doubl:[1,2,6,7,12],dt1:[5,10],dtpye:7,dtype:[0,3,5,8,9,10,11,12],each:[5,10,11],effect:[1,2,4,6],either:2,element:[2,4,5,8,10,12],empti:[5,10,11],end:[4,8],endl:[1,6,7,8,10,11,12],entir:5,equival:2,error:[11,12],error_already_set:10,exampl:3,example_binary_ufunc:1,example_list1:[5,10],example_list:[5,10],example_tupl:[5,10],example_unary_ufunc:6,exercis:5,explicit:2,expos:[1,6,10,12],express:4,extract:[1,6,7,8,10,11,12],f_contigu:5,failur:11,fals:2,farrai:5,farray_mi:5,farray_ro:5,featur:12,few:10,fill:[10,11],first:[7,8,10,11],first_argument_typ:[1,12],flag:5,follow:5,for_custom_dtyp:[2,7],form:5,format:7,from:[2,5,7,10],from_data:[5,8,10,12],from_object:5,functor:[1,6],gener:[2,4,5,10,12],get:[2,7,8,10,11],get_bas:5,get_builtin:[2,5,7,8,10,11,12],get_data:[4,5],get_dtyp:[5,7],get_flag:5,get_items:2,get_nd:[4,5],get_shap:[4,5],get_strid:5,given:[2,5],happen:8,has:5,have:[5,10],header:[7,8,11],here:[5,7,10,11],how:[0,9,10,12],hpp:[1,2,4,5,6,7,8,10,11,12],implement:12,includ:[7,8,10,11,12],increment:4,indic:4,initi:[5,7,8,10,11,12],initialis:[10,11,12],inlin:5,input1:1,input2:1,input:[1,6,12],inst:[1,6,12],instanc:[1,6,12],integ:[4,5,10],intend:4,interchang:5,interest:10,intermedi:[1,6],introduc:10,iostream:[7,8,10,11,12],item:5,iter:4,its:[1,4,5,6,7],itself:5,keep:10,last:10,left:5,let:[10,11,12],librari:10,like:[1,6,7,8,11],limit:5,list:[1,5,7,10,11,12],list_for_dtyp:[2,7],littl:10,locat:8,logic:5,loop:4,made:[8,12],mai:5,main:[7,8,10,11,12],make:[1,6,8,10,12],make_multi_it:4,make_tupl:[2,5,7,8,10,11,12],manipul:10,match:10,math:5,maximum:5,member:7,method:[1,2,5,6,7,8,10,12],minimum:5,modifi:11,modul:[7,8,11,12],more:[7,10],move:5,mul_data:[5,10],mul_data_ex:[5,10],multi:10,multi_it:[0,3],multidimension:10,must:[1,2,5,6,10,12],name:7,namepac:10,namespac:[1,2,4,5,6,7,8,10,11,12],nd_max:5,nd_min:5,ndarrai:[0,2,3,7,8,9,11,12],neccessari:12,necessari:[2,5,7,8,10,11,12],need:[5,10],new_arrai:7,new_refer:2,next:[4,7,8,10],non:10,none:[5,10],not_don:4,note:[1,5,6],noth:2,notic:10,now:[7,8,10,12],nth:[4,5],number:[4,5,10],numpi:[1,2,4,5,6,7,8,10,11,12],obj:5,object:[1,2,4,5,6,8,10,12],object_cref:2,old:5,one:[4,5,7],onli:[4,5],oper:[1,5,6,12],option:[1,5,6,10],order:[1,6],origin:[7,10,11],other:[10,12],otherwis:[5,12],out:[10,12],output:[1,6,12],over:4,overload:[1,6,12],own:[5,10],owner:[5,10],paramet:[5,10,11],part:10,pass:[1,6,7,8,10],perform:12,pick:10,pointer:[0,4,5,9],possibl:8,print:[7,8,10,11,12],properli:5,py_arrai:8,py_initi:[7,8,10,11,12],py_intptr_t:[4,5],python:[1,2,4,5,6,7,8,10,11,12],quit:10,raw:[0,5,9],readi:7,refer:[0,8],reflect:8,reinterpret_cast:5,remov:5,requir:[1,2,5,6],reshap:[5,11],result:[1,6,11,12],result_arrai:[1,12],result_typ:[1,6,12],row:[5,10],runtim:[7,8,10,11,12],same:[5,8,10,12],scalar:[2,5,6,12],second_argument_typ:[1,12],see:[8,12],segment:11,select:10,self:[1,6],sequenc:[4,5,10],set:[5,11],set_bas:5,setup:[7,8],shape:[4,5,7,10,11],shared_ptr:[1,6,12],should:[4,7],show:7,simpl:[0,9,10],singl:[6,10],size:[2,5,7],sizeof:[8,10],some:10,sourc:8,specifi:[5,7,10],squar:[1,5,6,12],squeez:5,start:11,std:[1,5,6,7,8,10,11,12],step:[1,6],store:8,str:[1,6,7,8,10,11,12],stride:[5,10],string:[7,11],struct:[1,6,12],structur:[1,5,6],supli:5,suppli:[2,4,5,10],support:[2,12],synopsi:3,take:[7,10,12],targument1:1,targument2:1,targument:6,tbinaryfunctor:1,templat:[1,2,5,6,7],thei:8,thi:[5,7,8,10,11],third:10,three:4,thu:8,track:10,transpos:5,travel:10,tresult:[1,6],tunaryfunctor:6,tupl:[2,5,7,10,11],tutori:[0,7,10],two:[1,4,12],type:[1,2,5,6,7,10,11,12],typedef:[1,6,12],typenam:[1,2,5,6],typic:[1,6],ufunc:[0,1,4,6,9],uint8_t:[5,10],unari:[6,12],unary_ufunc:[0,3,12],unarysquar:[6,12],underli:[1,6],uniniti:5,unit:[5,10],univers:12,update_al:5,usag:[1,6],use:[0,1,6,9,10,12],used:[1,4,6,8],user:[2,5],uses:8,using:[0,1,5,6,7,9,10,11],v_contigu:5,valid:[1,2,6],valu:[4,7,8,11,12],variabl:7,varieti:10,varrai:5,vector:5,view:5,wai:10,well:[2,8,10],where:5,whether:4,which:[5,10,11],work:5,wrapper:8,writeabl:5,you:[10,11],zero:[5,7,10,11]},titles:["Welcome to the documentation of the Boost.Python NumPy extension!","binary_ufunc","dtype","Boost.Python NumPy extension Reference","multi_iter","ndarray","unary_ufunc","How to use dtypes","How to access data using raw pointers","Boost.Python NumPy extension Tutorial","Creating ndarrays","A simple tutorial on Arrays","Ufuncs"],titleterms:{access:8,accessor:[1,2,4,5,6],arrai:11,binary_ufunc:1,boost:[0,3,9],constructor:[1,2,4,5,6],content:[1,2,4,5,6],creat:10,data:8,document:0,dtype:[2,7],exampl:[1,2,5,6],extens:[0,3,9],how:[7,8],multi_it:4,ndarrai:[5,10],numpi:[0,3,9],pointer:8,python:[0,3,9],raw:8,refer:3,simpl:11,synopsi:[1,2,4,5,6],tabl:[1,2,4,5,6],tutori:[9,11],ufunc:12,unary_ufunc:6,use:7,using:8,welcom:0}})
\ No newline at end of file
diff --git a/doc/html/numpy/tutorial/dtype.html b/doc/html/numpy/tutorial/dtype.html
index f5d3d517..bdf2c7be 100644
--- a/doc/html/numpy/tutorial/dtype.html
+++ b/doc/html/numpy/tutorial/dtype.html
@@ -20,6 +20,7 @@
+
@@ -70,8 +71,8 @@
How to use dtypes
Here is a brief tutorial to show how to create ndarrays with built-in python data types, and extract the types and values of member variables
Like before, first get the necessary headers, setup the namespaces and initialize the Python runtime and numpy module:
-#include <boost/python/numpy.hpp>
-#include <iostream>
+#include <boost/python/numpy.hpp>
+#include <iostream>
namespace p = boost::python;
namespace np = boost::python::numpy;
@@ -84,35 +85,35 @@
Next, we create the shape and dtype. We use the get_builtin method to get the numpy dtype corresponding to the builtin C++ dtype
Here, we will create a 3x3 array passing a tuple with (3,3) for the size, and double as the data type
-p::tuple shape = p::make_tuple(3, 3);
+p::tuple shape = p::make_tuple(3, 3);
np::dtype dtype = np::dtype::get_builtin<double>();
np::ndarray a = np::zeros(shape, dtype);
Finally, we can print the array using the extract method in the python namespace.
Here, we first convert the variable into a string, and then extract it as a C++ character array from the python string using the <char const * > template
-std::cout << "Original array:\n" << p::extract<char const *>(p::str(a)) << std::endl;
+std::cout << "Original array:\n" << p::extract<char const *>(p::str(a)) << std::endl;
We can also print the dtypes of the data members of the ndarray by using the get_dtype method for the ndarray
-std::cout << "Datatype is:\n" << p::extract<char const *>(p::str(a.get_dtype())) << std::endl ;
+std::cout << "Datatype is:\n" << p::extract<char const *>(p::str(a.get_dtype())) << std::endl ;
We can also create custom dtypes and build ndarrays with the custom dtypes
We use the dtype constructor to create a custom dtype. This constructor takes a list as an argument.
The list should contain one or more tuples of the format (variable name, variable type)
So first create a tuple with a variable name and its dtype, double, to create a custom dtype
-p::tuple for_custom_dtype = p::make_tuple("ha",dtype) ;
+p::tuple for_custom_dtype = p::make_tuple("ha",dtype) ;
Next, create a list, and add this tuple to the list. Then use the list to create the custom dtype
-p::list list_for_dtype ;
+p::list list_for_dtype ;
list_for_dtype.append(for_custom_dtype) ;
np::dtype custom_dtype = np::dtype(list_for_dtype) ;
We are now ready to create an ndarray with dimensions specified by *shape* and of custom dtpye
- np::ndarray new_array = np::zeros(shape,custom_dtype);
+ np::ndarray new_array = np::zeros(shape,custom_dtype);
}
diff --git a/doc/html/numpy/tutorial/fromdata.html b/doc/html/numpy/tutorial/fromdata.html
index 3fe81c3a..fc436b10 100644
--- a/doc/html/numpy/tutorial/fromdata.html
+++ b/doc/html/numpy/tutorial/fromdata.html
@@ -20,6 +20,7 @@
+
@@ -71,8 +72,8 @@
One of the advantages of the ndarray wrapper is that the same data can be used in both Python and C++ and changes can be made to reflect at both ends.
The from_data method makes this possible.
Like before, first get the necessary headers, setup the namespaces and initialize the Python runtime and numpy module:
-#include <boost/python/numpy.hpp>
-#include <iostream>
+#include <boost/python/numpy.hpp>
+#include <iostream>
namespace p = boost::python;
namespace np = boost::python::numpy;
@@ -84,7 +85,7 @@ The from_data method makes this possible.
Create an array in C++ , and pass the pointer to it to the from_data method to create an ndarray:
-int arr[] = {1,2,3,4,5};
+int arr[] = {1,2,3,4,5};
np::ndarray py_array = np::from_data(arr, np::dtype::get_builtin<int>(),
p::make_tuple(5),
p::make_tuple(sizeof(int)),
@@ -92,7 +93,7 @@ The from_data method makes this possible.
Print the source C++ array, as well as the ndarray, to check if they are the same:
-std::cout << "C++ array :" << std::endl;
+std::cout << "C++ array :" << std::endl;
for (int j=0;j<4;j++)
{
std::cout << arr[j] << ' ';
@@ -102,7 +103,7 @@ The from_data method makes this possible.
Now, change an element in the Python ndarray, and check if the value changed correspondingly in the source C++ array:
-py_array[1] = 5 ;
+py_array[1] = 5 ;
std::cout << "Is the change reflected in the C++ array used to create the ndarray ? " << std::endl;
for (int j = 0; j < 5; j++)
{
@@ -111,7 +112,7 @@ The from_data method makes this possible.
Next, change an element of the source C++ array and see if it is reflected in the Python ndarray:
- arr[2] = 8;
+ arr[2] = 8;
std::cout << std::endl
<< "Is the change reflected in the Python ndarray ?" << std::endl
<< p::extract<char const *>(p::str(py_array)) << std::endl;
diff --git a/doc/html/numpy/tutorial/index.html b/doc/html/numpy/tutorial/index.html
index a54303e8..dd321e28 100644
--- a/doc/html/numpy/tutorial/index.html
+++ b/doc/html/numpy/tutorial/index.html
@@ -20,6 +20,7 @@
+
diff --git a/doc/html/numpy/tutorial/ndarray.html b/doc/html/numpy/tutorial/ndarray.html
index b39fa08d..b8d9c8eb 100644
--- a/doc/html/numpy/tutorial/ndarray.html
+++ b/doc/html/numpy/tutorial/ndarray.html
@@ -20,6 +20,7 @@
+
@@ -72,8 +73,8 @@
ndarrays can also be created from arbitrary python sequences as well as from data and dtypes.
This tutorial will introduce you to some of the ways in which you can create ndarrays. The methods covered here include creating ndarrays from arbitrary Python sequences, as well as from C++ containers, using both unit and non-unit strides
First, as before, initialise the necessary namepaces and runtimes
-#include <boost/python/numpy.hpp>
-#include <iostream>
+#include <boost/python/numpy.hpp>
+#include <iostream>
namespace p = boost::python;
namespace np = boost::python::numpy;
@@ -84,66 +85,66 @@ ndarrays can also be created from arbitrary python sequences as well as from dat
np::initialize();
-Let’s now create an ndarray from a simple tuple. We first create a tuple object, and then pass it to the array method, to generate the necessary tuple
-p::object tu = p::make_tuple('a','b','c');
+Let’s now create an ndarray from a simple tuple. We first create a tuple object, and then pass it to the array method, to generate the necessary tuple
+p::object tu = p::make_tuple('a','b','c');
np::ndarray example_tuple = np::array(tu);
-Let’s now try the same with a list. We create an empty list, add an element using the append method, and as before, call the array method
-p::list l;
+Let’s now try the same with a list. We create an empty list, add an element using the append method, and as before, call the array method
+p::list l;
l.append('a');
np::ndarray example_list = np::array (l);
Optionally, we can also specify a dtype for the array
-np::dtype dt = np::dtype::get_builtin<int>();
+np::dtype dt = np::dtype::get_builtin<int>();
np::ndarray example_list1 = np::array (l,dt);
We can also create an array by supplying data arrays and a few other parameters.
First,create an integer array
-int data[] = {1,2,3,4,5};
+int data[] = {1,2,3,4,5};
Create a shape, and strides, needed by the function
-p::tuple shape = p::make_tuple(5);
+p::tuple shape = p::make_tuple(5);
p::tuple stride = p::make_tuple(sizeof(int));
Here, shape is (4,) , and the stride is sizeof(int)`.
A stride is the number of bytes that must be traveled to get to the next desired element while constructing the ndarray.
The function also needs an owner, to keep track of the data array passed. Passing none is dangerous
-p::object own;
+p::object own;
The from_data function takes the data array, datatype,shape,stride and owner as arguments and returns an ndarray
-np::ndarray data_ex1 = np::from_data(data,dt, shape,stride,own);
+np::ndarray data_ex1 = np::from_data(data,dt, shape,stride,own);
-Now let’s print the ndarray we created
-std::cout << "Single dimensional array ::" << std::endl
+Now let’s print the ndarray we created
+std::cout << "Single dimensional array ::" << std::endl
<< p::extract<char const *>(p::str(data_ex)) << std::endl;
-Let’s make it a little more interesting. Lets make an 3x2 ndarray from a multi-dimensional array using non-unit strides
+Let’s make it a little more interesting. Lets make an 3x2 ndarray from a multi-dimensional array using non-unit strides
First lets create a 3x4 array of 8-bit integers
-uint8_t mul_data[][4] = {{1,2,3,4},{5,6,7,8},{1,3,5,7}};
+uint8_t mul_data[][4] = {{1,2,3,4},{5,6,7,8},{1,3,5,7}};
-Now let’s create an array of 3x2 elements, picking the first and third elements from each row . For that, the shape will be 3x2.
+
Now let’s create an array of 3x2 elements, picking the first and third elements from each row . For that, the shape will be 3x2.
The strides will be 4x2 i.e. 4 bytes to go to the next desired row, and 2 bytes to go to the next desired column
-shape = p::make_tuple(3,2);
+shape = p::make_tuple(3,2);
stride = p::make_tuple(sizeof(uint8_t)*2,sizeof(uint8_t));
Get the numpy dtype for the built-in 8-bit integer data type
-np::dtype dt1 = np::dtype::get_builtin<uint8_t>();
+np::dtype dt1 = np::dtype::get_builtin<uint8_t>();
Now lets first create and print out the ndarray as is.
-Notice how we can pass the shape and strides in the function directly, as well as the owner. The last part can be done because we don’t have any use to
-manipulate the “owner” object
-np::ndarray mul_data_ex = np::from_data(mul_data, dt1,
+Notice how we can pass the shape and strides in the function directly, as well as the owner. The last part can be done because we don’t have any use to
+manipulate the “owner” object
+np::ndarray mul_data_ex = np::from_data(mul_data, dt1,
p::make_tuple(3,4),
p::make_tuple(4,1),
p::object());
@@ -152,7 +153,7 @@ manipulate the “owner” object
Now create the new ndarray using the shape and strides and print out the array we created using non-unit strides
- mul_data_ex = np::from_data(mul_data, dt1, shape, stride, p::object());
+ mul_data_ex = np::from_data(mul_data, dt1, shape, stride, p::object());
std::cout << "Selective multidimensional array :: "<<std::endl
<< p::extract<char const *>(p::str(mul_data_ex)) << std::endl ;
}
@@ -160,7 +161,7 @@ manipulate the “owner” object
Note
-The from_data method will throw error_already_set if the number of elements dictated by the shape and the corresponding strides don’t match.
+The from_data method will throw error_already_set if the number of elements dictated by the shape and the corresponding strides don’t match.
diff --git a/doc/html/numpy/tutorial/simple.html b/doc/html/numpy/tutorial/simple.html
index 7862aaaa..57437aaa 100644
--- a/doc/html/numpy/tutorial/simple.html
+++ b/doc/html/numpy/tutorial/simple.html
@@ -20,6 +20,7 @@
+
@@ -68,34 +69,34 @@
A simple tutorial on Arrays
-Let’s start with a simple tutorial to create and modify arrays.
+Let’s start with a simple tutorial to create and modify arrays.
Get the necessary headers for numpy components and set up necessary namespaces:
-#include <boost/python/numpy.hpp>
-#include <iostream>
+#include <boost/python/numpy.hpp>
+#include <iostream>
namespace p = boost::python;
namespace np = boost::python::numpy;
Initialise the Python runtime, and the numpy module. Failure to call these results in segmentation errors:
-int main(int argc, char **argv)
+int main(int argc, char **argv)
{
Py_Initialize();
np::initialize();
Zero filled n-dimensional arrays can be created using the shape and data-type of the array as a parameter. Here, the shape is 3x3 and the datatype is the built-in float type:
-p::tuple shape = p::make_tuple(3, 3);
+p::tuple shape = p::make_tuple(3, 3);
np::dtype dtype = np::dtype::get_builtin<float>();
np::ndarray a = np::zeros(shape, dtype);
You can also create an empty array like this
-np::ndarray b = np::empty(shape,dtype);
+np::ndarray b = np::empty(shape,dtype);
Print the original and reshaped array. The array a which is a list is first converted to a string, and each value in the list is extracted using extract< >:
- std::cout << "Original array:\n" << p::extract<char const *>(p::str(a)) << std::endl;
+ std::cout << "Original array:\n" << p::extract<char const *>(p::str(a)) << std::endl;
// Reshape the array into a 1D array
a = a.reshape(p::make_tuple(9));
diff --git a/doc/html/numpy/tutorial/ufunc.html b/doc/html/numpy/tutorial/ufunc.html
index 3723d821..1b7f50ff 100644
--- a/doc/html/numpy/tutorial/ufunc.html
+++ b/doc/html/numpy/tutorial/ufunc.html
@@ -20,6 +20,7 @@
+
@@ -71,20 +72,20 @@
Ufuncs or universal functions operate on ndarrays element by element, and support array broadcasting, type casting, and other features.
Lets try and see how we can use the binary and unary ufunc methods
After the neccessary includes
-#include <boost/python/numpy.hpp>
-#include <iostream>
+#include <boost/python/numpy.hpp>
+#include <iostream>
namespace p = boost::python;
namespace np = boost::python::numpy;
Now we create the structs necessary to implement the ufuncs. The typedefs must be made as the ufunc generators take these typedefs as inputs and return an error otherwise
-struct UnarySquare
+struct UnarySquare
{
typedef double argument_type;
typedef double result_type;
- double operator()(double r) const { return r * r;}
+ double operator()(double r) const { return r * r;}
};
struct BinarySquare
@@ -98,87 +99,87 @@
Initialise the Python runtime and the numpy module
-int main(int argc, char **argv)
+int main(int argc, char **argv)
{
Py_Initialize();
np::initialize();
Now expose the struct UnarySquare to Python as a class, and let ud be the class object.
-p::object ud = p::class_<UnarySquare, boost::shared_ptr<UnarySquare> >("UnarySquare");
+p::object ud = p::class_<UnarySquare, boost::shared_ptr<UnarySquare> >("UnarySquare");
ud.def("__call__", np::unary_ufunc<UnarySquare>::make());
Let inst be an instance of the class ud
-p::object inst = ud();
+p::object inst = ud();
-Use the “__call__” method to call the overloaded () operator and print the value
-std::cout << "Square of unary scalar 1.0 is " << p::extract<char const *>(p::str(inst.attr("__call__")(1.0))) << std::endl;
+Use the “__call__” method to call the overloaded () operator and print the value
+std::cout << "Square of unary scalar 1.0 is " << p::extract<char const *>(p::str(inst.attr("__call__")(1.0))) << std::endl;
Create an array in C++
-int arr[] = {1,2,3,4} ;
+int arr[] = {1,2,3,4} ;
..and use it to create the ndarray in Python
-np::ndarray demo_array = np::from_data(arr, np::dtype::get_builtin<int>(),
+np::ndarray demo_array = np::from_data(arr, np::dtype::get_builtin<int>(),
p::make_tuple(4),
p::make_tuple(4),
p::object());
Print out the demo array
-std::cout << "Demo array is " << p::extract<char const *>(p::str(demo_array)) << std::endl;
+std::cout << "Demo array is " << p::extract<char const *>(p::str(demo_array)) << std::endl;
-Call the “__call__” method to perform the operation and assign the value to result_array
-p::object result_array = inst.attr("__call__")(demo_array);
+Call the “__call__” method to perform the operation and assign the value to result_array
+p::object result_array = inst.attr("__call__")(demo_array);
Print the resultant array
-std::cout << "Square of demo array is " << p::extract<char const *>(p::str(result_array)) << std::endl;
+std::cout << "Square of demo array is " << p::extract<char const *>(p::str(result_array)) << std::endl;
Lets try the same with a list
-p::list li;
+p::list li;
li.append(3);
li.append(7);
Print out the demo list
-std::cout << "Demo list is " << p::extract<char const *>(p::str(li)) << std::endl;
+std::cout << "Demo list is " << p::extract<char const *>(p::str(li)) << std::endl;
Call the ufunc for the list
-result_array = inst.attr("__call__")(li);
+result_array = inst.attr("__call__")(li);
And print the list out
-std::cout << "Square of demo list is " << p::extract<char const *>(p::str(result_array)) << std::endl;
+std::cout << "Square of demo list is " << p::extract<char const *>(p::str(result_array)) << std::endl;
Now lets try Binary ufuncs. Again, expose the struct BinarySquare to Python as a class, and let ud be the class object
-ud = p::class_<BinarySquare, boost::shared_ptr<BinarySquare> >("BinarySquare");
+ud = p::class_<BinarySquare, boost::shared_ptr<BinarySquare> >("BinarySquare");
ud.def("__call__", np::binary_ufunc<BinarySquare>::make());
And initialise ud
-inst = ud();
+inst = ud();
Print the two input lists
-std::cout << "The two input list for binary ufunc are " << std::endl
+std::cout << "The two input list for binary ufunc are " << std::endl
<< p::extract<char const *>(p::str(demo_array)) << std::endl
<< p::extract<char const *>(p::str(demo_array)) << std::endl;
Call the binary ufunc taking demo_array as both inputs
-result_array = inst.attr("__call__")(demo_array,demo_array);
+result_array = inst.attr("__call__")(demo_array,demo_array);
And print the output
- std::cout << "Square of list with binary ufunc is " << p::extract<char const *>(p::str(result_array)) << std::endl;
+ std::cout << "Square of list with binary ufunc is " << p::extract<char const *>(p::str(result_array)) << std::endl;
}
diff --git a/doc/html/reference/concepts.html b/doc/html/reference/concepts.html
index 62485678..7a040431 100644
--- a/doc/html/reference/concepts.html
+++ b/doc/html/reference/concepts.html
@@ -3,7 +3,7 @@
Chapter 1. Concepts
-
+
diff --git a/doc/html/reference/concepts/dereferenceable.html b/doc/html/reference/concepts/dereferenceable.html
index 18ea62ae..13ebaea6 100644
--- a/doc/html/reference/concepts/dereferenceable.html
+++ b/doc/html/reference/concepts/dereferenceable.html
@@ -3,7 +3,7 @@
Dereferenceable
-
+
diff --git a/doc/html/reference/concepts/extractor.html b/doc/html/reference/concepts/extractor.html
index 5cb4e9c4..a8de1b6a 100644
--- a/doc/html/reference/concepts/extractor.html
+++ b/doc/html/reference/concepts/extractor.html
@@ -3,7 +3,7 @@
Extractor
-
+
diff --git a/doc/html/reference/concepts/holdergenerator.html b/doc/html/reference/concepts/holdergenerator.html
index b3780baf..97ae0544 100644
--- a/doc/html/reference/concepts/holdergenerator.html
+++ b/doc/html/reference/concepts/holdergenerator.html
@@ -3,7 +3,7 @@
HolderGenerator
-
+
diff --git a/doc/html/reference/concepts/objectwrapper.html b/doc/html/reference/concepts/objectwrapper.html
index 9092fd92..c606dd68 100644
--- a/doc/html/reference/concepts/objectwrapper.html
+++ b/doc/html/reference/concepts/objectwrapper.html
@@ -3,7 +3,7 @@
ObjectWrapper
-
+
diff --git a/doc/html/reference/concepts/resultconverter.html b/doc/html/reference/concepts/resultconverter.html
index 790172f6..049e49b8 100644
--- a/doc/html/reference/concepts/resultconverter.html
+++ b/doc/html/reference/concepts/resultconverter.html
@@ -3,7 +3,7 @@
ResultConverter
-
+
diff --git a/doc/html/reference/embedding.html b/doc/html/reference/embedding.html
index 4792a6ae..e4088c7d 100644
--- a/doc/html/reference/embedding.html
+++ b/doc/html/reference/embedding.html
@@ -3,7 +3,7 @@
Chapter 6. Embedding
-
+
diff --git a/doc/html/reference/embedding/boost_python_import_hpp.html b/doc/html/reference/embedding/boost_python_import_hpp.html
index 7bf7ecbf..a0933199 100644
--- a/doc/html/reference/embedding/boost_python_import_hpp.html
+++ b/doc/html/reference/embedding/boost_python_import_hpp.html
@@ -3,7 +3,7 @@
boost/python/import.hpp
-
+
diff --git a/doc/html/reference/function_invocation_and_creation.html b/doc/html/reference/function_invocation_and_creation.html
index 46ef7635..3d2e6f28 100644
--- a/doc/html/reference/function_invocation_and_creation.html
+++ b/doc/html/reference/function_invocation_and_creation.html
@@ -3,7 +3,7 @@
Chapter 4. Function Invocation and Creation
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html
index fe0e88d3..c5c198e0 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_call_hpp.html
@@ -3,7 +3,7 @@
boost/python/call.hpp
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html
index 670387f9..a313764f 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_call_method_hpp.html
@@ -3,7 +3,7 @@
boost/python/call_method.hpp
-
+
@@ -81,6 +81,8 @@
#include <boost/python/module.hpp>
#include <boost/python/class.hpp>
+#include <boost/python/call_method.hpp>
+#include <boost/python/def.hpp>
#include <boost/utility.hpp>
#include <cstring>
@@ -89,7 +91,7 @@
{
public:
virtual char const* class_name() const { return "Base"; }
- virtual ~Base();
+ virtual ~Base() {};
};
bool is_base(Base* b)
@@ -117,7 +119,7 @@
{
def("is_base", is_base);
- class_<Base,Base_callback, noncopyable>("Base")
+ class_<Base,Base_callback, boost::noncopyable>("Base")
.def("class_name", &Base_callback::Base_name)
;
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html
index fb5bbf54..ec5d5077 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_data_members_hpp.html
@@ -3,7 +3,7 @@
boost/python/data_members.hpp
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html
index 7b658abc..91fc7ec1 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_make_function_hpp.html
@@ -3,7 +3,7 @@
boost/python/make_function.hpp
-
+
@@ -69,16 +69,24 @@
from the first Python argument, and subsequent Python arguments will
be used as the arguments to f.
-
- * If policies are supplied, it will be applied to the function as
- described here. * If keywords are supplied, the keywords will be
- applied in order to the final arguments of the resulting function.
- * If Signature is supplied, it should be an instance of an MPL front-extensible
- sequence representing the function's return type followed by its
- argument types. Pass a Signature when wrapping function object types
- whose signatures can't be deduced, or when you wish to override the
- types which will be passed to the wrapped function.
-
+
+-
+ If policies are supplied, it will be applied to the function
+ as described here.
+
+-
+ If keywords are supplied, the keywords will be applied in order
+ to the final arguments of the resulting function.
+
+-
+ If Signature is supplied, it should be an instance of an MPL
+ front-extensible sequence representing the function's return
+ type followed by its argument types. Pass a Signature when wrapping
+ function object types whose signatures can't be deduced, or when
+ you wish to override the types which will be passed to the wrapped
+ function.
+
+
Returns
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html
index 818c9f7c..5c426b16 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_overloads_hpp.html
@@ -3,7 +3,7 @@
boost/python/overloads.hpp
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html
index 16eacbc3..4a4a606e 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_ptr_hpp.html
@@ -3,7 +3,7 @@
boost/python/ptr.hpp
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html b/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html
index 75ba9e14..96ade980 100644
--- a/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html
+++ b/doc/html/reference/function_invocation_and_creation/boost_python_raw_function_hpp.html
@@ -3,7 +3,7 @@
boost/python/raw_function.hpp
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/function_documentation.html b/doc/html/reference/function_invocation_and_creation/function_documentation.html
index c48216db..6ec03322 100644
--- a/doc/html/reference/function_invocation_and_creation/function_documentation.html
+++ b/doc/html/reference/function_invocation_and_creation/function_documentation.html
@@ -3,7 +3,7 @@
Function documentation
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html
index 7ee5343d..696dd2c4 100644
--- a/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html
+++ b/doc/html/reference/function_invocation_and_creation/models_of_callpolicies.html
@@ -3,7 +3,7 @@
Models of CallPolicies
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html
index ef347171..0231afa7 100644
--- a/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html
+++ b/doc/html/reference/function_invocation_and_creation/models_of_resultconverter.html
@@ -3,7 +3,7 @@
Models of ResultConverter
-
+
diff --git a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html
index 52557ffe..a9167452 100644
--- a/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html
+++ b/doc/html/reference/function_invocation_and_creation/models_of_resultconvertergenerat.html
@@ -3,7 +3,7 @@
Models of ResultConverterGenerator
-
+
diff --git a/doc/html/reference/glossary.html b/doc/html/reference/glossary.html
index a085ae86..5ee64879 100644
--- a/doc/html/reference/glossary.html
+++ b/doc/html/reference/glossary.html
@@ -3,7 +3,7 @@
Chapter 9. Glossary
-
+
diff --git a/doc/html/reference/high_level_components.html b/doc/html/reference/high_level_components.html
index 97492e33..caaf64fa 100644
--- a/doc/html/reference/high_level_components.html
+++ b/doc/html/reference/high_level_components.html
@@ -3,7 +3,7 @@
Chapter 2. High Level Components
-
+
@@ -516,16 +516,23 @@
attribute of the current
scope is bound to the new extension class.
-
- * If supplied, the value of docstring is bound to the __doc__ attribute of the extension
- class. * If init_spec
- is no_init, a special
- __init__ function
- is generated which always raises a Python exception. Otherwise,
- this->def(init_spec)
- is called. * If init_spec
- is not supplied, this->def(init<>()) is called.
-
+
+-
+ If supplied, the value of docstring is bound to the
__doc__ attribute of the
+ extension class.
+
+-
+ If
init_spec
+ is no_init,
+ a special __init__
+ function is generated which always raises a Python exception.
+ Otherwise, this->def(init_spec) is called.
+
+-
+ If
init_spec
+ is not supplied, this->def(init<>()) is called.
+
+
Rationale
@@ -621,21 +628,29 @@
but the first N - M
arguments of each overload.
-
- * Otherwise, a single method overload is built around fn, which
- must not be null:
-
-
- * If fn is a function pointer, its first argument must be of the
- form U, U cv&, U cv*, or U cv* const&, where T* is convertible
- to U*, and a1-a3, if supplied, may be selected in any order from
- the table below. * Otherwise, if fn is a member function pointer,
- its target must be T or one of its public base classes, and a1-a3,
- if supplied, may be selected in any order from the table below.
- * Otherwise, Fn must be [derived from] object,
- and a1-a2, if supplied, may be selcted in any order from the first
- two rows of the table below. To be useful, fn should be callable.
-
+-
+ Otherwise, a single method overload is built around fn, which
+ must not be null:
+
+-
+ If fn is a function pointer, its first argument must
+ be of the form U, U cv&, U cv*, or U cv* const&,
+ where T* is convertible to U*, and a1-a3, if supplied,
+ may be selected in any order from the table below.
+
+-
+ Otherwise, if fn is a member function pointer, its target
+ must be T or one of its public base classes, and a1-a3,
+ if supplied, may be selected in any order from the table
+ below.
+
+-
+
+ Otherwise, Fn must be [derived from] object,
+ and a1-a2, if supplied, may be selcted in any order from
+ the first two rows of the table below. To be useful,
+ fn should be callable.
+
@@ -644,82 +659,85 @@
-
- Mnemonic Name
-
-
+
+ Mnemonic Name
+
+
-
- Requirements/Type properties
-
-
+
+ Requirements/Type properties
+
+
-
- Effects
-
-
+
+ Effects
+
+
-
- docstring
-
-
+
+ docstring
+
+
-
- Any ntbs
-
-
+
+ Any ntbs
+
+
-
- Value will be bound to the __doc__ attribute of the resulting
- method overload. If an earlier overload supplied a docstring,
- two newline characters and the new docstring are appended
- to it.
-
-
+
+ Value will be bound to the __doc__ attribute
+ of the resulting method overload. If an earlier
+ overload supplied a docstring, two newline
+ characters and the new docstring are appended
+ to it.
+
+
-
- policies
-
-
+
+ policies
+
+
-
- A model of CallPolicies
-
-
+
+ A model of CallPolicies
+
+
-
- A copy will be used as the call policies of the resulting
- method overload.
-
-
+
+ A copy will be used as the call policies of
+ the resulting method overload.
+
+
-
- keywords
-
-
+
+ keywords
+
+
-
- The result of a keyword-expression
- specifying no more arguments than the arity
- of fn.
-
-
+
+ The result of a keyword-expression
+ specifying no more arguments than the arity of fn.
+
+
-
- A copy will be used as the call policies of the resulting
- method overload.
-
-
+
+ A copy will be used as the call policies of
+ the resulting method overload.
+
+
+
+
+
Returns
diff --git a/doc/html/reference/high_level_components/boost_python_def_hpp.html b/doc/html/reference/high_level_components/boost_python_def_hpp.html
index 8cca967b..72ea270c 100644
--- a/doc/html/reference/high_level_components/boost_python_def_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_def_hpp.html
@@ -3,7 +3,7 @@
boost/python/def.hpp
-
+
@@ -61,36 +61,42 @@
identifier
naming rules.
-
- * If Fn is [derived
- from] object,
- it will be added to the current
- scope as a single overload. To be useful, fn
- should be callable.
- * If a1 is the result
- of an overload-dispatch-expression,
- only the second form is allowed and fn
- must be a pointer to function or pointer to member function whose
- arity is the same as A1's maximum
- arity.
-
-
- Effects: For each prefix P of Fn's
- sequence of argument types, beginning with the one whose length is
- A1's minimum
- arity, adds a name(...) function overload to the current
- scope. Each overload generated invokes a1's call-expression
- with P, using a copy of a1's call policies. If the longest valid
- prefix of A1 contains N types and a1 holds M keywords, an initial
- sequence of the keywords are used for all but the first N - M arguments
- of each overload.
-
-
- * Otherwise, fn must be a non-null function or member function pointer,
- and a single function overload built around fn is added to the current
- scope. If any of a1-a3 are supplied, they may be selected in any
- order from the table below.
-
+
+-
+ If
Fn is [derived
+ from] object,
+ it will be added to the current
+ scope as a single overload. To be useful, fn should be callable.
+
+-
+
+ If a1 is the
+ result of an overload-dispatch-expression,
+ only the second form is allowed and fn
+ must be a pointer to function or pointer to member function whose
+ arity is the same as A1's maximum
+ arity.
+
+
+ Effects: For each prefix P of Fn's
+ sequence of argument types, beginning with the one whose length
+ is A1's minimum
+ arity, adds a name(...) function overload to the
+ current
+ scope. Each overload generated invokes a1's call-expression
+ with P, using a copy of a1's call policies. If the longest valid
+ prefix of A1 contains N types and a1 holds M keywords, an initial
+ sequence of the keywords are used for all but the first N - M
+ arguments of each overload.
+
+
+-
+
+ Otherwise, fn must be a non-null function or member function
+ pointer, and a single function overload built around fn is added
+ to the current scope. If any of a1-a3 are supplied, they may
+ be selected in any order from the table below.
+
@@ -99,80 +105,82 @@
-
- Mnemonic Name
-
-
+
+ Mnemonic Name
+
+
-
- Requirements/Type properties
-
-
+
+ Requirements/Type properties
+
+
-
- Effects
-
-
+
+ Effects
+
+
-
- docstring
-
-
+
+ docstring
+
+
-
- Any ntbs
-
-
+
+ Any ntbs
+
+
-
- Value will be bound to the __doc__
- attribute of the resulting method overload.
-
-
+
+ Value will be bound to the __doc__
+ attribute of the resulting method overload.
+
+
-
- policies
-
-
+
+ policies
+
+
-
- A model of CallPolicies
-
-
+
+ A model of CallPolicies
+
+
-
- A copy will be used as the call policies of the resulting
- method overload.
-
-
+
+ A copy will be used as the call policies of the resulting
+ method overload.
+
+
-
- keywords
-
-
+
+ keywords
+
+
-
- The result of a keyword-expression
- specifying no more arguments than the arity
- of fn.
-
-
+
+ The result of a keyword-expression
+ specifying no more arguments than the arity
+ of fn.
+
+
-
- A copy will be used as the call policies of the resulting
- method overload.
-
-
+
+ A copy will be used as the call policies of the resulting
+ method overload.
+
+
+
+
diff --git a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html b/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html
index 4d4658ab..641cc73d 100644
--- a/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_def_visitor_hpp.html
@@ -3,7 +3,7 @@
boost/python/def_visitor.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_docstring_options_h.html b/doc/html/reference/high_level_components/boost_python_docstring_options_h.html
index 505a8d21..40458a05 100644
--- a/doc/html/reference/high_level_components/boost_python_docstring_options_h.html
+++ b/doc/html/reference/high_level_components/boost_python_docstring_options_h.html
@@ -3,7 +3,7 @@
boost/python/docstring_options.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_enum_hpp.html b/doc/html/reference/high_level_components/boost_python_enum_hpp.html
index 188e983c..fcacb606 100644
--- a/doc/html/reference/high_level_components/boost_python_enum_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_enum_hpp.html
@@ -3,7 +3,7 @@
boost/python/enum.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_errors_hpp.html b/doc/html/reference/high_level_components/boost_python_errors_hpp.html
index 137b2264..d01aece5 100644
--- a/doc/html/reference/high_level_components/boost_python_errors_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_errors_hpp.html
@@ -3,7 +3,7 @@
boost/python/errors.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_exception_translato.html b/doc/html/reference/high_level_components/boost_python_exception_translato.html
index 019640a1..cb34fad2 100644
--- a/doc/html/reference/high_level_components/boost_python_exception_translato.html
+++ b/doc/html/reference/high_level_components/boost_python_exception_translato.html
@@ -3,7 +3,7 @@
boost/python/exception_translator.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_init_hpp.html b/doc/html/reference/high_level_components/boost_python_init_hpp.html
index 7a3b5cf0..77fe1a89 100644
--- a/doc/html/reference/high_level_components/boost_python_init_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_init_hpp.html
@@ -3,7 +3,7 @@
boost/python/init.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_iterator_hpp.html b/doc/html/reference/high_level_components/boost_python_iterator_hpp.html
index 4161bbfa..a63350c3 100644
--- a/doc/html/reference/high_level_components/boost_python_iterator_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_iterator_hpp.html
@@ -3,7 +3,7 @@
boost/python/iterator.hpp
-
+
@@ -328,14 +328,21 @@
applying NextPolicies to the iterator's next() function. The second form is identical
to the first, except that Target is deduced from Accessor1 as follows:
-
- # If Accessor1 is a function type, Target is the type of its first
- argument. # If Accessor1 is a data member pointer of the form R (T::*),
- Target is identical to T.
- # If Accessor1 is a member function pointer of the form R (T::*)(arguments...)
- cv-opt, where cv-opt is an optional
- cv-qualifier, Target is identical to T.
-
+
+-
+ If Accessor1 is a function type, Target is the type of its first
+ argument.
+
+-
+ If Accessor1 is a data member pointer of the form
R (T::*),
+ Target is identical to T.
+
+-
+ If Accessor1 is a member function pointer of the form
R (T::*)(arguments...)
+ cv-opt, where cv-opt is an optional
+ cv-qualifier, Target is identical to T.
+
+
The third form is identical to the second, except that NextPolicies
is an unspecified model of CallPolicies
diff --git a/doc/html/reference/high_level_components/boost_python_module_hpp.html b/doc/html/reference/high_level_components/boost_python_module_hpp.html
index 6f2c47ba..c3cd3be3 100644
--- a/doc/html/reference/high_level_components/boost_python_module_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_module_hpp.html
@@ -3,7 +3,7 @@
boost/python/module.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_operators_hpp.html b/doc/html/reference/high_level_components/boost_python_operators_hpp.html
index 25f93f72..efec22fd 100644
--- a/doc/html/reference/high_level_components/boost_python_operators_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_operators_hpp.html
@@ -3,7 +3,7 @@
boost/python/operators.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_scope_hpp.html b/doc/html/reference/high_level_components/boost_python_scope_hpp.html
index 85c2c172..6214d914 100644
--- a/doc/html/reference/high_level_components/boost_python_scope_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_scope_hpp.html
@@ -3,7 +3,7 @@
boost/python/scope.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html
index 68995855..e242d930 100644
--- a/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_stl_iterator_hpp.html
@@ -3,7 +3,7 @@
boost/python/stl_iterator.hpp
-
+
diff --git a/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html b/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html
index fed5d67f..a857973f 100644
--- a/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html
+++ b/doc/html/reference/high_level_components/boost_python_wrapper_hpp.html
@@ -3,7 +3,7 @@
boost/python/wrapper.hpp
-
+
diff --git a/doc/html/reference/index.html b/doc/html/reference/index.html
index c2e6a503..6e92bba2 100644
--- a/doc/html/reference/index.html
+++ b/doc/html/reference/index.html
@@ -3,7 +3,7 @@
Boost.Python Reference Manual
-
+
@@ -127,7 +127,7 @@
-Last revised: March 29, 2019 at 19:47:49 GMT
+Last revised: March 04, 2021 at 17:00:24 GMT
diff --git a/doc/html/reference/object_wrappers.html b/doc/html/reference/object_wrappers.html
index 7f4c6150..e0d08e76 100644
--- a/doc/html/reference/object_wrappers.html
+++ b/doc/html/reference/object_wrappers.html
@@ -3,7 +3,7 @@
Chapter 3. Object Wrappers
-
+
diff --git a/doc/html/reference/object_wrappers/boost_python_list_hpp.html b/doc/html/reference/object_wrappers/boost_python_list_hpp.html
index 5c075e40..657fa1fd 100644
--- a/doc/html/reference/object_wrappers/boost_python_list_hpp.html
+++ b/doc/html/reference/object_wrappers/boost_python_list_hpp.html
@@ -3,7 +3,7 @@
boost_python_list.hpp
-
+
diff --git a/doc/html/reference/object_wrappers/boost_python_long_hpp.html b/doc/html/reference/object_wrappers/boost_python_long_hpp.html
index 97c166d8..253f0c81 100644
--- a/doc/html/reference/object_wrappers/boost_python_long_hpp.html
+++ b/doc/html/reference/object_wrappers/boost_python_long_hpp.html
@@ -3,7 +3,7 @@
boost/python/long.hpp
-
+
diff --git a/doc/html/reference/object_wrappers/boost_python_object_hpp.html b/doc/html/reference/object_wrappers/boost_python_object_hpp.html
index 228cdf33..4f89cc98 100644
--- a/doc/html/reference/object_wrappers/boost_python_object_hpp.html
+++ b/doc/html/reference/object_wrappers/boost_python_object_hpp.html
@@ -3,7 +3,7 @@
boost/python/object.hpp
-
+
diff --git a/doc/html/reference/object_wrappers/boost_python_slice_hpp.html b/doc/html/reference/object_wrappers/boost_python_slice_hpp.html
index a20f7df3..b979a93e 100644
--- a/doc/html/reference/object_wrappers/boost_python_slice_hpp.html
+++ b/doc/html/reference/object_wrappers/boost_python_slice_hpp.html
@@ -3,7 +3,7 @@
boost/python/slice.hpp
-
+
diff --git a/doc/html/reference/object_wrappers/boost_python_str_hpp.html b/doc/html/reference/object_wrappers/boost_python_str_hpp.html
index 5d12989b..5cd6b2ee 100644
--- a/doc/html/reference/object_wrappers/boost_python_str_hpp.html
+++ b/doc/html/reference/object_wrappers/boost_python_str_hpp.html
@@ -3,7 +3,7 @@
boost/python/str.hpp
-
+
diff --git a/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html b/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html
index f0b78554..9de2bed0 100644
--- a/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html
+++ b/doc/html/reference/object_wrappers/boost_python_tuple_hpp.html
@@ -3,7 +3,7 @@
boost/python/tuple.hpp
-
+
@@ -33,7 +33,7 @@
Exposes a TypeWrapper
- for the Python http://www.python.org/doc/current/tut/node7.html#SECTION007300000000000000000`tuple`
+ for the Python http://www.python.org/doc/current/tut/node7.html#SECTION007300000000000000000%60tuple%60
type.
diff --git a/doc/html/reference/to_from_python_type_conversion.html b/doc/html/reference/to_from_python_type_conversion.html
index 39f34819..ce85ab3e 100644
--- a/doc/html/reference/to_from_python_type_conversion.html
+++ b/doc/html/reference/to_from_python_type_conversion.html
@@ -3,7 +3,7 @@
Chapter 5. To/From Python Type Conversion
-
+
diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html b/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html
index 719b109d..cd683300 100644
--- a/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html
+++ b/doc/html/reference/to_from_python_type_conversion/boost_python_implicit_hpp.html
@@ -3,7 +3,7 @@
boost/python/implicit.hpp
-
+
diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html
index df4b0a0e..7626e6c2 100644
--- a/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html
+++ b/doc/html/reference/to_from_python_type_conversion/boost_python_lvalue_from_pytype_.html
@@ -3,7 +3,7 @@
boost/python/lvalue_from_pytype.hpp
-
+
diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html b/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html
index 54fc6588..b982f341 100644
--- a/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html
+++ b/doc/html/reference/to_from_python_type_conversion/boost_python_opaque_pointer_conv.html
@@ -3,7 +3,7 @@
boost/python/opaque_pointer_converter.hpp
-
+
@@ -55,13 +55,18 @@
- Effects
-
- * Registers the instance as a lvalue_from_pytype converter
- from Python objects into opaque pointers. The Python Objects created
- are named after the type pointed to by the opaque pointer being wrapped.
- * Registers the instance as a to_python_converter from
- opaque pointers to Python objects.
-
+
+-
+ Registers the instance as a
lvalue_from_pytype converter
+ from Python objects into opaque pointers. The Python Objects
+ created are named after the type pointed to by the opaque pointer
+ being wrapped.
+
+-
+ Registers the instance as a
to_python_converter
+ from opaque pointers to Python objects.
+
+
diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html b/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html
index 239dc345..7a15754b 100644
--- a/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html
+++ b/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_to_pyt.html
@@ -3,7 +3,7 @@
boost/python/register_ptr_to_python.hpp
-
+
diff --git a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html
index 46b36e5f..f8cf289d 100644
--- a/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html
+++ b/doc/html/reference/to_from_python_type_conversion/boost_python_to_python_converter.html
@@ -3,7 +3,7 @@
boost/python/to_python_converter.hpp
-
+
diff --git a/doc/html/reference/topics.html b/doc/html/reference/topics.html
index 1f245124..17f6b922 100644
--- a/doc/html/reference/topics.html
+++ b/doc/html/reference/topics.html
@@ -3,7 +3,7 @@
Chapter 8. Topics
-
+
diff --git a/doc/html/reference/topics/indexing_support.html b/doc/html/reference/topics/indexing_support.html
index ad8dc122..6a23fbc8 100644
--- a/doc/html/reference/topics/indexing_support.html
+++ b/doc/html/reference/topics/indexing_support.html
@@ -3,7 +3,7 @@
Indexing support
-
+
@@ -63,17 +63,19 @@
Python container to behave.
+
Provide default reference semantics for container element indexing
(__getitem__) such
that c[i] can be mutable. Require:
+
val = c[i]
c[i].m()
val == c[i]
-
- where m is a non-const (mutating) member function (method).
-
-
+
+ where m is a non-const (mutating) member function (method).
+
+
Return safe references from __getitem__
such that subsequent adds and deletes to and from the container will
diff --git a/doc/html/reference/topics/pickle_support.html b/doc/html/reference/topics/pickle_support.html
index 468f3fa4..ca386396 100644
--- a/doc/html/reference/topics/pickle_support.html
+++ b/doc/html/reference/topics/pickle_support.html
@@ -3,7 +3,7 @@
Pickle support
-
+
diff --git a/doc/html/reference/utility_and_infrastructure.html b/doc/html/reference/utility_and_infrastructure.html
index 6efe2aec..706f82af 100644
--- a/doc/html/reference/utility_and_infrastructure.html
+++ b/doc/html/reference/utility_and_infrastructure.html
@@ -3,7 +3,7 @@
Chapter 7. Utility and Infrastructure
-
+
diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html
index aee1aa0f..6af91d68 100644
--- a/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html
+++ b/doc/html/reference/utility_and_infrastructure/boost_python_handle_hpp.html
@@ -3,7 +3,7 @@
boost/python/handle.hpp
-
+
diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html
index da0b58d1..999f2bce 100644
--- a/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html
+++ b/doc/html/reference/utility_and_infrastructure/boost_python_instance_holder_hpp.html
@@ -3,7 +3,7 @@
boost/python/instance_holder.hpp
-
+
diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html
index 4ef868b8..544c7ffa 100644
--- a/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html
+++ b/doc/html/reference/utility_and_infrastructure/boost_python_pointee_hpp.html
@@ -3,7 +3,7 @@
boost/python/pointee.hpp
-
+
diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html
index a0b168d3..a22143d2 100644
--- a/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html
+++ b/doc/html/reference/utility_and_infrastructure/boost_python_ssize_t_hpp.html
@@ -3,7 +3,7 @@
boost/python/ssize_t.hpp
-
+
diff --git a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html
index f5e05260..5629b6bb 100644
--- a/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html
+++ b/doc/html/reference/utility_and_infrastructure/boost_python_type_id_hpp.html
@@ -3,7 +3,7 @@
boost/python/type_id.hpp
-
+
diff --git a/doc/html/rn.html b/doc/html/rn.html
index a6644193..695d5c63 100644
--- a/doc/html/rn.html
+++ b/doc/html/rn.html
@@ -3,7 +3,7 @@
Chapter 1. Release Notes
-
+
diff --git a/doc/html/support.html b/doc/html/support.html
index 6440b10c..ef271592 100644
--- a/doc/html/support.html
+++ b/doc/html/support.html
@@ -3,7 +3,7 @@
Chapter 4. Support Resources
-
+
@@ -43,23 +43,23 @@
mailing list is a forum for discussing Boost's Build System.
-
- The Boost.Python Issue
- tracker
-
-
+
+ The Boost.Python Issue
+ tracker
+
+
![[Note]](images/note.png)
Note
- In the past we used Trac, which still hosts a considerable number of
- open
- issues. We hope to be able to either close them or migrate
- them to the new issue tracker.
-
+ In the past we used Trac, which still hosts a considerable number of
+ open
+ issues. We hope to be able to either close them or migrate them
+ to the new issue tracker.
+
-
+
The Boost.Python Wiki
diff --git a/doc/html/tutorial/index.html b/doc/html/tutorial/index.html
index e05d4cf6..ee06daee 100644
--- a/doc/html/tutorial/index.html
+++ b/doc/html/tutorial/index.html
@@ -3,7 +3,7 @@
Boost.Python Tutorial
-
+
@@ -140,7 +140,7 @@
-Last revised: March 29, 2019 at 19:47:46 GMT
+Last revised: March 04, 2021 at 17:00:24 GMT
diff --git a/doc/html/tutorial/tutorial/embedding.html b/doc/html/tutorial/tutorial/embedding.html
index a37d23e7..8332a768 100644
--- a/doc/html/tutorial/tutorial/embedding.html
+++ b/doc/html/tutorial/tutorial/embedding.html
@@ -3,7 +3,7 @@
Embedding
-
+
diff --git a/doc/html/tutorial/tutorial/exception.html b/doc/html/tutorial/tutorial/exception.html
index c600ede8..1cd8cee8 100644
--- a/doc/html/tutorial/tutorial/exception.html
+++ b/doc/html/tutorial/tutorial/exception.html
@@ -3,7 +3,7 @@
Exception Translation
-
+
diff --git a/doc/html/tutorial/tutorial/exposing.html b/doc/html/tutorial/tutorial/exposing.html
index 71393ae0..322b67a1 100644
--- a/doc/html/tutorial/tutorial/exposing.html
+++ b/doc/html/tutorial/tutorial/exposing.html
@@ -3,7 +3,7 @@
Exposing Classes
-
+
@@ -347,7 +347,7 @@
the job of wrapping classes that are meant to overridden in Python, easier.
-
+
MSVC6/7 Workaround
@@ -443,7 +443,7 @@
If none, then we call Base::f().
-
+
MSVC6/7 Workaround
diff --git a/doc/html/tutorial/tutorial/functions.html b/doc/html/tutorial/tutorial/functions.html
index 58eb5707..480e5eb0 100644
--- a/doc/html/tutorial/tutorial/functions.html
+++ b/doc/html/tutorial/tutorial/functions.html
@@ -3,7 +3,7 @@
Functions
-
+
@@ -276,7 +276,7 @@ Namespaces are one honking great idea -- let's do more of those!
-
+
Remember the Zen, Luke:
diff --git a/doc/html/tutorial/tutorial/hello.html b/doc/html/tutorial/tutorial/hello.html
index 56488440..bb282017 100644
--- a/doc/html/tutorial/tutorial/hello.html
+++ b/doc/html/tutorial/tutorial/hello.html
@@ -3,7 +3,7 @@
Building Hello World
-
+
diff --git a/doc/html/tutorial/tutorial/iterators.html b/doc/html/tutorial/tutorial/iterators.html
index e8705346..c4d9e4b0 100644
--- a/doc/html/tutorial/tutorial/iterators.html
+++ b/doc/html/tutorial/tutorial/iterators.html
@@ -3,7 +3,7 @@
Iterators
-
+
diff --git a/doc/html/tutorial/tutorial/object.html b/doc/html/tutorial/tutorial/object.html
index 671312e6..65b34b40 100644
--- a/doc/html/tutorial/tutorial/object.html
+++ b/doc/html/tutorial/tutorial/object.html
@@ -3,7 +3,7 @@
Object Interface
-
+
@@ -166,7 +166,7 @@
do that in std C++.
-
+
Beware the common pitfall of forgetting
diff --git a/doc/html/tutorial/tutorial/techniques.html b/doc/html/tutorial/tutorial/techniques.html
index 328c7ced..9c3ece6c 100644
--- a/doc/html/tutorial/tutorial/techniques.html
+++ b/doc/html/tutorial/tutorial/techniques.html
@@ -3,7 +3,7 @@
General Techniques
-
+