@@ -57,17 +57,23 @@ template <ptrdiff_t R, ptrdiff_t C, ptrdiff_t X> struct StridedDims {
57
57
// : M{m}, N{n}, strideM{x} {
58
58
// invariant(N <= strideM);
59
59
// }
60
- constexpr explicit operator int32_t () const {
61
- return int32_t (ptrdiff_t (M) * ptrdiff_t (strideM));
60
+ constexpr explicit operator int () const {
61
+ return int (ptrdiff_t (M) * ptrdiff_t (strideM));
62
62
}
63
- constexpr explicit operator int64_t () const {
64
- return int64_t (ptrdiff_t (M) * ptrdiff_t (strideM));
63
+ constexpr explicit operator long () const {
64
+ return long (ptrdiff_t (M) * ptrdiff_t (strideM));
65
65
}
66
- constexpr explicit operator uint32_t () const {
67
- return uint32_t (ptrdiff_t (M) * ptrdiff_t (strideM));
66
+ constexpr explicit operator long long () const {
67
+ return ( long long ) (ptrdiff_t (M) * ptrdiff_t (strideM));
68
68
}
69
- constexpr explicit operator uint64_t () const {
70
- return uint64_t (ptrdiff_t (M) * ptrdiff_t (strideM));
69
+ constexpr explicit operator unsigned int () const {
70
+ return (unsigned int )(ptrdiff_t (M) * ptrdiff_t (strideM));
71
+ }
72
+ constexpr explicit operator unsigned long () const {
73
+ return (unsigned long )(ptrdiff_t (M) * ptrdiff_t (strideM));
74
+ }
75
+ constexpr explicit operator unsigned long long () const {
76
+ return (unsigned long long )(ptrdiff_t (M) * ptrdiff_t (strideM));
71
77
}
72
78
constexpr auto operator =(DenseDims<R, C> D) -> StridedDims &requires (C == X);
73
79
constexpr auto operator =(SquareDims<R> D)
@@ -136,17 +142,23 @@ static_assert(sizeof(StridedDims<-1, 8, 8>) == sizeof(ptrdiff_t));
136
142
template <ptrdiff_t R, ptrdiff_t C> struct DenseDims {
137
143
[[no_unique_address]] Row<R> M{};
138
144
[[no_unique_address]] Col<C> N{};
139
- constexpr explicit operator int32_t () const {
140
- return int32_t (ptrdiff_t (M) * ptrdiff_t (N));
145
+ constexpr explicit operator int () const {
146
+ return int (ptrdiff_t (M) * ptrdiff_t (N));
147
+ }
148
+ constexpr explicit operator long () const {
149
+ return long (ptrdiff_t (M) * ptrdiff_t (N));
141
150
}
142
- constexpr explicit operator int64_t () const {
143
- return int64_t (ptrdiff_t (M) * ptrdiff_t (N));
151
+ constexpr explicit operator long long () const {
152
+ return ( long long ) (ptrdiff_t (M) * ptrdiff_t (N));
144
153
}
145
- constexpr explicit operator uint32_t () const {
146
- return uint32_t (ptrdiff_t (M) * ptrdiff_t (N));
154
+ constexpr explicit operator unsigned int () const {
155
+ return ( unsigned int ) (ptrdiff_t (M) * ptrdiff_t (N));
147
156
}
148
- constexpr explicit operator uint64_t () const {
149
- return uint64_t (ptrdiff_t (M) * ptrdiff_t (N));
157
+ constexpr explicit operator unsigned long () const {
158
+ return (unsigned long )(ptrdiff_t (M) * ptrdiff_t (N));
159
+ }
160
+ constexpr explicit operator unsigned long long () const {
161
+ return (unsigned long long )(ptrdiff_t (M) * ptrdiff_t (N));
150
162
}
151
163
// constexpr DenseDims() = default;
152
164
// constexpr DenseDims(Row<R> m, Col<C> n) : M(unsigned(m)), N(unsigned(n)) {}
@@ -217,17 +229,23 @@ template <ptrdiff_t R, ptrdiff_t C> struct DenseDims {
217
229
};
218
230
template <ptrdiff_t R> struct SquareDims {
219
231
[[no_unique_address]] Row<R> M{};
220
- constexpr explicit operator int32_t () const {
221
- return int32_t (ptrdiff_t (M) * ptrdiff_t (M));
232
+ constexpr explicit operator int () const {
233
+ return int (ptrdiff_t (M) * ptrdiff_t (M));
234
+ }
235
+ constexpr explicit operator long () const {
236
+ return long (ptrdiff_t (M) * ptrdiff_t (M));
237
+ }
238
+ constexpr explicit operator long long () const {
239
+ return (long long )(ptrdiff_t (M) * ptrdiff_t (M));
222
240
}
223
- constexpr explicit operator int64_t () const {
224
- return int64_t (ptrdiff_t (M) * ptrdiff_t (M));
241
+ constexpr explicit operator unsigned int () const {
242
+ return ( unsigned int ) (ptrdiff_t (M) * ptrdiff_t (M));
225
243
}
226
- constexpr explicit operator uint32_t () const {
227
- return uint32_t (ptrdiff_t (M) * ptrdiff_t (M));
244
+ constexpr explicit operator unsigned long () const {
245
+ return ( unsigned long ) (ptrdiff_t (M) * ptrdiff_t (M));
228
246
}
229
- constexpr explicit operator uint64_t () const {
230
- return uint64_t (ptrdiff_t (M) * ptrdiff_t (M));
247
+ constexpr explicit operator unsigned long long () const {
248
+ return ( unsigned long long ) (ptrdiff_t (M) * ptrdiff_t (M));
231
249
}
232
250
// constexpr SquareDims() = default;
233
251
// constexpr SquareDims(ptrdiff_t d) : M{d} {}
0 commit comments