47 typename RemoveRef<T>::ValueType v,
48 typename RemoveRef<T>::Pointer ptr,
49 typename RemoveRef<T>::ConstPointer cPtr,
50 std::vector<typename RemoveRef<T>::ValueType> vecV,
51 const std::vector<typename RemoveRef<T>::ValueType>& cVecVR) {
53 typename RemoveRef<T>::ValueType;
54 typename RemoveRef<T>::Scalar;
55 typename RemoveRef<T>::ConstReference;
56 typename RemoveRef<T>::Reference;
57 typename RemoveRef<T>::ConstPointer;
58 typename RemoveRef<T>::Pointer;
59 typename RemoveRef<T>::ConstIterator;
60 typename RemoveRef<T>::Iterator;
66 { obj.size(std::size_t()) } -> std::integral;
67 { obj.empty() } -> std::convertible_to<bool>;
69 { obj.data() } -> std::convertible_to<
decltype(cPtr)>;
71 { obj.stdVector() } -> std::convertible_to<
decltype(cVecVR)>;
82 { obj.data() } -> std::same_as<
decltype(ptr)>;
84 { obj.stdVector() } -> std::same_as<
decltype(vecV)>;
86 { obj.fill(v) } -> std::same_as<void>;
87 { obj.clear() } -> std::same_as<void>;
109 typename RemoveRef<T>::Reference ref,
110 typename RemoveRef<T>::ConstReference cRef,
111 typename RemoveRef<T>::Pointer ptr,
112 typename RemoveRef<T>::ConstPointer cPtr) {
113 requires RemoveRef<T>::DIM == 2;
117 { obj.rows() } -> std::integral;
118 { obj.cols() } -> std::integral;
119 { obj.sizeX() } -> std::integral;
120 { obj.sizeY() } -> std::integral;
122 { obj.operator()(n, n) } -> std::convertible_to<
decltype(cRef)>;
124 { obj.data(n) } -> std::convertible_to<
decltype(cPtr)>;
128 { obj.operator()(n, n) } -> std::same_as<
decltype(ref)>;
130 { obj.data(n) } -> std::same_as<
decltype(ptr)>;
132 { obj.resize(n, n) } -> std::same_as<void>;
133 { obj.conservativeResize(n, n) } -> std::same_as<void>;
150 typename RemoveRef<T>::Reference ref,
151 typename RemoveRef<T>::ConstReference cRef,
152 typename RemoveRef<T>::Pointer ptr,
153 typename RemoveRef<T>::ConstPointer cPtr) {
154 requires RemoveRef<T>::DIM == 3;
156 RemoveRef<T>(n, n, n);
158 { obj.sizeX() } -> std::integral;
159 { obj.sizeY() } -> std::integral;
160 { obj.sizeZ() } -> std::integral;
162 { obj.operator()(n, n, n) } -> std::convertible_to<
decltype(cRef)>;
164 { obj.data(n) } -> std::convertible_to<
decltype(cPtr)>;
166 { obj.data(n, n) } -> std::convertible_to<
decltype(cPtr)>;
170 { obj.operator()(n, n, n) } -> std::same_as<
decltype(ref)>;
171 { obj.data(n) } -> std::same_as<
decltype(ptr)>;
172 { obj.data(n, n) } -> std::same_as<
decltype(ptr)>;
173 { obj.resize(n, n, n) } -> std::same_as<void>;
174 { obj.conservativeResize(n, n, n) } -> std::same_as<void>;
191 typename RemoveRef<T>::Reference ref,
192 typename RemoveRef<T>::ConstReference cRef,
193 typename RemoveRef<T>::Pointer ptr,
194 typename RemoveRef<T>::ConstPointer cPtr) {
195 requires RemoveRef<T>::DIM == 4;
197 RemoveRef<T>(n, n, n, n);
199 { obj.sizeX() } -> std::integral;
200 { obj.sizeY() } -> std::integral;
201 { obj.sizeZ() } -> std::integral;
202 { obj.sizeW() } -> std::integral;
204 { obj.operator()(n, n, n, n) } -> std::convertible_to<
decltype(cRef)>;
206 { obj.data(n) } -> std::convertible_to<
decltype(cPtr)>;
207 { obj.data(n, n) } -> std::convertible_to<
decltype(cPtr)>;
208 { obj.data(n, n, n) } -> std::convertible_to<
decltype(cPtr)>;
212 { obj.operator()(n, n, n, n) } -> std::same_as<
decltype(ref)>;
214 { obj.data(n) } -> std::same_as<
decltype(ptr)>;
215 { obj.data(n, n) } -> std::same_as<
decltype(ptr)>;
216 { obj.data(n, n, n) } -> std::same_as<
decltype(ptr)>;
218 { obj.resize(n, n, n, n) } -> std::same_as<void>;
219 { obj.conservativeResize(n, n, n, n) } -> std::same_as<void>;