diff --git a/include/pybind11/common.h b/include/pybind11/common.h index 302d75a6..a9159850 100644 --- a/include/pybind11/common.h +++ b/include/pybind11/common.h @@ -210,6 +210,7 @@ struct buffer_info { std::vector strides; // Number of entries between adjacent entries (for each per dimension) buffer_info() : ptr(nullptr), view(nullptr) {} + buffer_info(void *ptr, size_t itemsize, const std::string &format, size_t ndim, const std::vector &shape, const std::vector &strides) : ptr(ptr), itemsize(itemsize), size(1), format(format), @@ -218,6 +219,10 @@ struct buffer_info { size *= shape[i]; } + buffer_info(void *ptr, size_t itemsize, const std::string &format, size_t size) + : buffer_info(ptr, itemsize, format, 1, std::vector { size }, + std::vector { itemsize }) { } + buffer_info(Py_buffer *view) : ptr(view->buf), itemsize((size_t) view->itemsize), size(1), format(view->format), ndim((size_t) view->ndim), shape((size_t) view->ndim), strides((size_t) view->ndim), view(view) {