diff --git a/include/pybind11/numpy.h b/include/pybind11/numpy.h index 388e21229..57d442141 100644 --- a/include/pybind11/numpy.h +++ b/include/pybind11/numpy.h @@ -689,7 +689,7 @@ public: * care: the array must not be destroyed or reshaped for the duration of the returned object, * and the caller must take care not to access invalid dimensions or dimension indices. */ - template detail::unchecked_mutable_reference mutable_unchecked() { + template detail::unchecked_mutable_reference mutable_unchecked() & { if (Dims >= 0 && ndim() != Dims) throw std::domain_error("array has incorrect number of dimensions: " + std::to_string(ndim()) + "; expected " + std::to_string(Dims)); @@ -703,7 +703,7 @@ public: * reshaped for the duration of the returned object, and the caller must take care not to access * invalid dimensions or dimension indices. */ - template detail::unchecked_reference unchecked() const { + template detail::unchecked_reference unchecked() const & { if (Dims >= 0 && ndim() != Dims) throw std::domain_error("array has incorrect number of dimensions: " + std::to_string(ndim()) + "; expected " + std::to_string(Dims)); @@ -876,7 +876,7 @@ public: * care: the array must not be destroyed or reshaped for the duration of the returned object, * and the caller must take care not to access invalid dimensions or dimension indices. */ - template detail::unchecked_mutable_reference mutable_unchecked() { + template detail::unchecked_mutable_reference mutable_unchecked() & { return array::mutable_unchecked(); } @@ -887,7 +887,7 @@ public: * for the duration of the returned object, and the caller must take care not to access invalid * dimensions or dimension indices. */ - template detail::unchecked_reference unchecked() const { + template detail::unchecked_reference unchecked() const & { return array::unchecked(); }