@@ -148,11 +148,14 @@ void launch_grouped(handler &h, range<3> r, range<3> size,
148148  h.parallel_for (nd_range<3 >(r, size), k);
149149}
150150
151+ template  <typename  KernelType>
152+ constexpr  bool  enable_kernel_function_overload = !std::is_same_v<
153+     typename  std::decay_t <KernelType>, sycl::kernel>;
154+ 
151155template  <
152156    typename  KernelType,
153-     //  exclude sycl::kernel from overload resolution
154-     typename  = typename  std::enable_if_t <!std::is_same_v<
155-         typename  std::decay_t <KernelType>, sycl::kernel>>>
157+     typename  = typename  std::enable_if_t <enable_kernel_function_overload<
158+         KernelType>>>
156159void  launch_grouped (const  queue &q, range<1 > r, range<1 > size, KernelType &&k,
157160                    const  sycl::detail::code_location &codeLoc =
158161                        sycl::detail::code_location::current ()) {
@@ -168,8 +171,8 @@ void launch_grouped(const queue &q, range<1> r, range<1> size, KernelType &&k,
168171}
169172template  <
170173    typename  KernelType,
171-     typename  = typename  std::enable_if_t <!std::is_same_v <
172-         typename  std:: decay_t < KernelType>, sycl::kernel >>>
174+     typename  = typename  std::enable_if_t <enable_kernel_function_overload <
175+         KernelType>>>
173176void  launch_grouped (const  queue &q, range<2 > r, range<2 > size, KernelType &&k,
174177                    const  sycl::detail::code_location &codeLoc =
175178                        sycl::detail::code_location::current ()) {
@@ -185,8 +188,8 @@ void launch_grouped(const queue &q, range<2> r, range<2> size, KernelType &&k,
185188}
186189template  <
187190    typename  KernelType,
188-     typename  = typename  std::enable_if_t <!std::is_same_v <
189-         typename  std:: decay_t < KernelType>, sycl::kernel >>>
191+     typename  = typename  std::enable_if_t <enable_kernel_function_overload <
192+         KernelType>>>
190193void  launch_grouped (const  queue &q, range<3 > r, range<3 > size, KernelType &&k,
191194                    const  sycl::detail::code_location &codeLoc =
192195                        sycl::detail::code_location::current ()) {
0 commit comments