@@ -151,7 +151,7 @@ class blocked_nd_range : public blocked_nd_range_impl<Value, N> {
151
151
// blocked_nd_range(const dim_range_type& dim0, const dim_range_type& dim1, ...)
152
152
// while the arguments are passed as braced-init-lists
153
153
// Works only for 2 and more arguments since the deduction from
154
- // single braced-init-list argument is ambiguous with the single C-array argument
154
+ // single braced-init-list or single C-array argument prefers the multi-dimensional range
155
155
// Only braced-init-lists of size 2 and 3 are allowed since dim_range_type may only
156
156
// be constructed from 2 or 3 arguments
157
157
template <typename Value, unsigned int ... Ns,
@@ -168,18 +168,8 @@ blocked_nd_range(blocked_range<Value>, blocked_range<Values>...)
168
168
-> blocked_nd_range<Value, 1 + sizeof...(Values)>;
169
169
170
170
// blocked_nd_range(const value_type (&size)[N], size_type grainsize = 1)
171
- // while the grainsize is not passed
172
- // Does not work for arrays of size 2 or 3 since it is ambiguous with deducing
173
- // for dim_range_type constructor taking the single braced-init-list
174
- template <typename Value, unsigned int N,
175
- typename = std::enable_if_t <(N != 2 && N != 3 )>>
176
- blocked_nd_range (const Value (&)[N])
177
- -> blocked_nd_range<Value, N>;
178
-
179
- // blocked_nd_range(const value_type (&size)[N], size_type grainsize = 1)
180
- // while using the non-default grainsize
181
171
template <typename Value, unsigned int N>
182
- blocked_nd_range (const Value (&)[N], typename blocked_nd_range<Value, N>::size_type)
172
+ blocked_nd_range (const Value (&)[N], typename blocked_nd_range<Value, N>::size_type = 1 )
183
173
-> blocked_nd_range<Value, N>;
184
174
185
175
// blocked_nd_range(blocked_nd_range<Value, N>&, oneapi::tbb::split)
0 commit comments