@@ -1357,62 +1357,29 @@ class __SYCL_EBO host_sampled_image_accessor
13571357} // namespace _V1
13581358} // namespace sycl
13591359
1360- namespace std {
13611360template <typename DataT, int Dimensions, sycl::access_mode AccessMode,
13621361 sycl::image_target AccessTarget>
1363- struct hash <sycl::unsampled_image_accessor<DataT, Dimensions, AccessMode,
1364- AccessTarget>> {
1365- using AccType = sycl::unsampled_image_accessor<DataT, Dimensions, AccessMode,
1366- AccessTarget>;
1367-
1368- size_t operator ()(const AccType &A) const {
1369- #ifdef __SYCL_DEVICE_ONLY__
1370- // Hash is not supported on DEVICE. Just return 0 here.
1371- (void )A;
1372- return 0 ;
1373- #else
1374- auto AccImplPtr = sycl::detail::getSyclObjImpl (A);
1375- return hash<decltype (AccImplPtr)>()(AccImplPtr);
1376- #endif
1377- }
1378- };
1362+ struct std ::hash<
1363+ sycl::unsampled_image_accessor<DataT, Dimensions, AccessMode, AccessTarget>>
1364+ : public sycl::detail::sycl_obj_hash<
1365+ sycl::unsampled_image_accessor<DataT, Dimensions, AccessMode,
1366+ AccessTarget>,
1367+ false /* SupportedOnDevice*/ > {};
13791368
13801369template <typename DataT, int Dimensions, sycl::access_mode AccessMode>
1381- struct hash <
1382- sycl::host_unsampled_image_accessor<DataT, Dimensions, AccessMode>> {
1383- using AccType =
1384- sycl::host_unsampled_image_accessor<DataT, Dimensions, AccessMode>;
1385-
1386- size_t operator ()(const AccType &A) const {
1387- auto AccImplPtr = sycl::detail::getSyclObjImpl (A);
1388- return hash<decltype (AccImplPtr)>()(AccImplPtr);
1389- }
1370+ struct std ::hash<
1371+ sycl::host_unsampled_image_accessor<DataT, Dimensions, AccessMode>>
1372+ : public sycl::detail::sycl_obj_hash<
1373+ sycl::host_unsampled_image_accessor<DataT, Dimensions, AccessMode>> {
13901374};
13911375
13921376template <typename DataT, int Dimensions, sycl::image_target AccessTarget>
1393- struct hash <sycl::sampled_image_accessor<DataT, Dimensions, AccessTarget>> {
1394- using AccType = sycl::sampled_image_accessor<DataT, Dimensions, AccessTarget>;
1395-
1396- size_t operator ()(const AccType &A) const {
1397- #ifdef __SYCL_DEVICE_ONLY__
1398- // Hash is not supported on DEVICE. Just return 0 here.
1399- (void )A;
1400- return 0 ;
1401- #else
1402- auto AccImplPtr = sycl::detail::getSyclObjImpl (A);
1403- return hash<decltype (AccImplPtr)>()(AccImplPtr);
1404- #endif
1405- }
1406- };
1377+ struct std ::hash<sycl::sampled_image_accessor<DataT, Dimensions, AccessTarget>>
1378+ : public sycl::detail::sycl_obj_hash<
1379+ sycl::sampled_image_accessor<DataT, Dimensions, AccessTarget>,
1380+ false /* SupportedOnDevice*/ > {};
14071381
14081382template <typename DataT, int Dimensions>
1409- struct hash <sycl::host_sampled_image_accessor<DataT, Dimensions>> {
1410- using AccType = sycl::host_sampled_image_accessor<DataT, Dimensions>;
1411-
1412- size_t operator ()(const AccType &A) const {
1413- auto AccImplPtr = sycl::detail::getSyclObjImpl (A);
1414- return hash<decltype (AccImplPtr)>()(AccImplPtr);
1415- }
1416- };
1417-
1418- } // namespace std
1383+ struct std ::hash<sycl::host_sampled_image_accessor<DataT, Dimensions>>
1384+ : public sycl::detail::sycl_obj_hash<
1385+ sycl::host_sampled_image_accessor<DataT, Dimensions>> {};
0 commit comments