@@ -1223,42 +1223,69 @@ class accessor :
1223
1223
1224
1224
#if __cplusplus > 201402L
1225
1225
1226
- template <typename DataT, int Dimensions, typename AllocatorT, typename ... Ts >
1227
- accessor (buffer<DataT, Dimensions, AllocatorT>, Ts... )
1226
+ template <typename DataT, int Dimensions, typename AllocatorT>
1227
+ accessor (buffer<DataT, Dimensions, AllocatorT>)
1228
1228
->accessor<DataT, Dimensions, access::mode::read_write,
1229
1229
target::global_buffer, access::placeholder::true_t>;
1230
1230
1231
- template <typename DataT, int Dimensions, typename AllocatorT, typename ... Ts>
1232
- accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Ts...)
1231
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1>
1232
+ accessor (buffer<DataT, Dimensions, AllocatorT>, Type1)
1233
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type1, Type1>(),
1234
+ detail::deduceAccessTarget<Type1, Type1>(target::global_buffer),
1235
+ access::placeholder::true_t>;
1236
+
1237
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1238
+ typename Type2>
1239
+ accessor (buffer<DataT, Dimensions, AllocatorT>, Type1, Type2)
1240
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type1, Type2>(),
1241
+ detail::deduceAccessTarget<Type1, Type2>(target::global_buffer),
1242
+ access::placeholder::true_t>;
1243
+
1244
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1245
+ typename Type2, typename Type3>
1246
+ accessor (buffer<DataT, Dimensions, AllocatorT>, Type1, Type2, Type3)
1247
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type2, Type3>(),
1248
+ detail::deduceAccessTarget<Type2, Type3>(target::global_buffer),
1249
+ access::placeholder::true_t>;
1250
+
1251
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1252
+ typename Type2, typename Type3, typename Type4>
1253
+ accessor (buffer<DataT, Dimensions, AllocatorT>, Type1, Type2, Type3, Type4)
1254
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type3, Type4>(),
1255
+ detail::deduceAccessTarget<Type3, Type4>(target::global_buffer),
1256
+ access::placeholder::true_t>;
1257
+
1258
+ template <typename DataT, int Dimensions, typename AllocatorT>
1259
+ accessor (buffer<DataT, Dimensions, AllocatorT>, handler)
1233
1260
->accessor<DataT, Dimensions, access::mode::read_write,
1234
1261
target::global_buffer, access::placeholder::false_t>;
1235
1262
1236
- template <typename DataT, int Dimensions, typename AllocatorT,
1237
- access_mode AccessMode, typename ... Ts>
1238
- accessor (buffer<DataT, Dimensions, AllocatorT>, Ts..., mode_tag_t <AccessMode>,
1239
- property_list = {})
1240
- ->accessor<DataT, Dimensions, AccessMode, target::global_buffer,
1241
- access::placeholder::true_t>;
1263
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1>
1264
+ accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Type1)
1265
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type1, Type1>(),
1266
+ detail::deduceAccessTarget<Type1, Type1>(target::global_buffer),
1267
+ access::placeholder::false_t>;
1242
1268
1243
- template <typename DataT, int Dimensions, typename AllocatorT,
1244
- access_mode AccessMode, typename ... Ts >
1245
- accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Ts...,
1246
- mode_tag_t <AccessMode>, property_list = {})
1247
- ->accessor<DataT, Dimensions, AccessMode, target::global_buffer,
1269
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1270
+ typename Type2 >
1271
+ accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Type1, Type2)
1272
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type1, Type2>(),
1273
+ detail::deduceAccessTarget<Type1, Type2>( target::global_buffer) ,
1248
1274
access::placeholder::false_t>;
1249
1275
1250
- template <typename DataT, int Dimensions, typename AllocatorT,
1251
- access_mode AccessMode, target AccessTarget, typename ... Ts >
1252
- accessor (buffer<DataT, Dimensions, AllocatorT>, Ts...,
1253
- mode_target_tag_t <AccessMode, AccessTarget>, property_list = {})
1254
- ->accessor<DataT, Dimensions, AccessMode, AccessTarget ,
1255
- access::placeholder::true_t >;
1276
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1277
+ typename Type2, typename Type3 >
1278
+ accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Type1, Type2, Type3)
1279
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type2, Type3>(),
1280
+ detail::deduceAccessTarget<Type2, Type3>(target::global_buffer) ,
1281
+ access::placeholder::false_t >;
1256
1282
1257
- template <typename DataT, int Dimensions, typename AllocatorT,
1258
- access_mode AccessMode, target AccessTarget, typename ... Ts>
1259
- accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Ts...,
1260
- mode_target_tag_t <AccessMode, AccessTarget>, property_list = {})
1261
- ->accessor<DataT, Dimensions, AccessMode, AccessTarget,
1283
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1284
+ typename Type2, typename Type3, typename Type4>
1285
+ accessor (buffer<DataT, Dimensions, AllocatorT>, handler, Type1, Type2, Type3,
1286
+ Type4)
1287
+ ->accessor<DataT, Dimensions, detail::deduceAccessMode<Type3, Type4>(),
1288
+ detail::deduceAccessTarget<Type3, Type4>(target::global_buffer),
1262
1289
access::placeholder::false_t>;
1263
1290
1264
1291
#endif
@@ -1658,15 +1685,32 @@ class host_accessor
1658
1685
1659
1686
#if __cplusplus > 201402L
1660
1687
1661
- template <typename DataT, int Dimensions, typename AllocatorT, typename ... Ts >
1662
- host_accessor (buffer<DataT, Dimensions, AllocatorT>, Ts... )
1688
+ template <typename DataT, int Dimensions, typename AllocatorT>
1689
+ host_accessor (buffer<DataT, Dimensions, AllocatorT>)
1663
1690
->host_accessor<DataT, Dimensions, access::mode::read_write>;
1664
1691
1665
- template <typename DataT, int Dimensions, typename AllocatorT,
1666
- access_mode AccessMode, typename ... Ts>
1667
- host_accessor (buffer<DataT, Dimensions, AllocatorT>, Ts...,
1668
- mode_tag_t <AccessMode>, property_list = {})
1669
- ->host_accessor<DataT, Dimensions, AccessMode>;
1692
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1>
1693
+ host_accessor (buffer<DataT, Dimensions, AllocatorT>, Type1)
1694
+ ->host_accessor<DataT, Dimensions,
1695
+ detail::deduceAccessMode<Type1, Type1>()>;
1696
+
1697
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1698
+ typename Type2>
1699
+ host_accessor (buffer<DataT, Dimensions, AllocatorT>, Type1, Type2)
1700
+ ->host_accessor<DataT, Dimensions,
1701
+ detail::deduceAccessMode<Type1, Type2>()>;
1702
+
1703
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1704
+ typename Type2, typename Type3>
1705
+ host_accessor (buffer<DataT, Dimensions, AllocatorT>, Type1, Type2, Type3)
1706
+ ->host_accessor<DataT, Dimensions,
1707
+ detail::deduceAccessMode<Type2, Type3>()>;
1708
+
1709
+ template <typename DataT, int Dimensions, typename AllocatorT, typename Type1,
1710
+ typename Type2, typename Type3, typename Type4>
1711
+ host_accessor (buffer<DataT, Dimensions, AllocatorT>, Type1, Type2, Type3, Type4)
1712
+ ->host_accessor<DataT, Dimensions,
1713
+ detail::deduceAccessMode<Type3, Type4>()>;
1670
1714
1671
1715
#endif
1672
1716
0 commit comments