Updating Pybind11 is necessary for gem5 to compile correctly with Python 3.11. As of March 9th 2023, 2.10.3 is the latest version of Pybind11. Change-Id: I32c68c507770040d3fac2de442d88a8f46b48896 Issue-on: https://gem5.atlassian.net/browse/GEM5-1295 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/68818 Maintainer: Jason Lowe-Power <power.jg@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
25 lines
1.3 KiB
Plaintext
25 lines
1.3 KiB
Plaintext
template <op_id id, op_type ot, typename L = undefined_t, typename R = undefined_t>
|
|
template <typename ThisT>
|
|
auto &this_ = static_cast<ThisT &>(*this);
|
|
if (load_impl<ThisT>(temp, false)) {
|
|
ssize_t nd = 0;
|
|
auto trivial = broadcast(buffers, nd, shape);
|
|
auto ndim = (size_t) nd;
|
|
int nd;
|
|
ssize_t ndim() const { return detail::array_proxy(m_ptr)->nd; }
|
|
using op = op_impl<id, ot, Base, L_type, R_type>;
|
|
template <op_id id, op_type ot, typename L, typename R>
|
|
template <detail::op_id id, detail::op_type ot, typename L, typename R, typename... Extra>
|
|
class_ &def(const detail::op_<id, ot, L, R> &op, const Extra &...extra) {
|
|
class_ &def_cast(const detail::op_<id, ot, L, R> &op, const Extra &...extra) {
|
|
@pytest.mark.parametrize("access", ["ro", "rw", "static_ro", "static_rw"])
|
|
struct IntStruct {
|
|
explicit IntStruct(int v) : value(v){};
|
|
~IntStruct() { value = -value; }
|
|
IntStruct(const IntStruct &) = default;
|
|
IntStruct &operator=(const IntStruct &) = default;
|
|
py::class_<IntStruct>(m, "IntStruct").def(py::init([](const int i) { return IntStruct(i); }));
|
|
py::implicitly_convertible<int, IntStruct>();
|
|
m.def("test", [](int expected, const IntStruct &in) {
|
|
[](int expected, const IntStruct &in) {
|