30 : ptr(ptr), itemsize(itemsize), size(1), format(format), ndim(ndim),
32 if (ndim != (
ssize_t) shape.size() || ndim != (
ssize_t) strides.size())
33 pybind11_fail(
"buffer_info: ndim doesn't match shape and/or strides length");
34 for (
size_t i = 0;
i < (
size_t) ndim; ++
i)
43 :
buffer_info(ptr, itemsize, format, 1, {size}, {itemsize}) { }
50 :
buffer_info(view->buf, view->itemsize, view->format, view->ndim,
51 {view->shape, view->shape + view->ndim}, {view->strides, view->strides + view->ndim}) {
53 this->ownview = ownview;
65 itemsize = rhs.itemsize;
71 std::swap(view, rhs.view);
72 std::swap(ownview, rhs.ownview);
77 if (view && ownview) { PyBuffer_Release(view);
delete view; }
87 Py_buffer *view =
nullptr;
buffer_info(T *ptr, detail::any_container< ssize_t > shape_in, detail::any_container< ssize_t > strides_in)
#define PYBIND11_NAMESPACE
buffer_info(Py_buffer *view, bool ownview=true)
buffer_info(buffer_info &&other)
buffer_info(void *ptr, ssize_t itemsize, const std::string &format, ssize_t ndim, detail::any_container< ssize_t > shape_in, detail::any_container< ssize_t > strides_in)
auto format(const std::locale &loc, const CharT *fmt, const Streamable &tp) -> decltype(to_stream(std::declval< std::basic_ostream< CharT > &>(), fmt, tp), std::basic_string< CharT >
std::vector< ssize_t > strides
Information record describing a Python buffer object.
std::vector< ssize_t > shape
static bool compare(const buffer_info &b)
#define NAMESPACE_END(name)
const std::type_info ssize_t itemsize
buffer_info & operator=(buffer_info &&rhs)
buffer_info(private_ctr_tag, void *ptr, ssize_t itemsize, const std::string &format, ssize_t ndim, detail::any_container< ssize_t > &&shape_in, detail::any_container< ssize_t > &&strides_in)
detail::enable_if_t<!detail::move_never< T >::value, T > move(object &&obj)
buffer_info(void *ptr, ssize_t itemsize, const std::string &format, ssize_t size)
buffer_info(T *ptr, ssize_t size)
#define NAMESPACE_BEGIN(name)
typename std::enable_if< B, T >::type enable_if_t
from cpp_future import (convenient aliases from C++14/17)
static bool compare(const buffer_info &b)