@@ -1223,42 +1223,69 @@ class accessor :
12231223
12241224#if __cplusplus > 201402L
12251225
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>)
12281228 ->accessor<DataT, Dimensions, access::mode::read_write,
12291229 target::global_buffer, access::placeholder::true_t>;
12301230
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)
12331260 ->accessor<DataT, Dimensions, access::mode::read_write,
12341261 target::global_buffer, access::placeholder::false_t>;
12351262
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>;
12421268
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) ,
12481274 access::placeholder::false_t>;
12491275
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 >;
12561282
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),
12621289 access::placeholder::false_t>;
12631290
12641291#endif
@@ -1658,15 +1685,32 @@ class host_accessor
16581685
16591686#if __cplusplus > 201402L
16601687
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>)
16631690 ->host_accessor<DataT, Dimensions, access::mode::read_write>;
16641691
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>()>;
16701714
16711715#endif
16721716
0 commit comments