##### System information (version)
- OpenCV => master
- Operating System / P…latform => Ubuntu 22.04
- Compiler => GCC 11.4
##### Detailed description
The build breaks when upgrading from CUDA 12.5 to CUDA 12.6.
Here is the full build error:
```
[ 9%] Building NVCC (Device) object modules/cudaarithm/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_polar_cart.cu.o
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(518): error: incomplete type "cuda::std::__4::tuple_size<cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_size<cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
Unroll<tuple_size<DstPtrTuple>::value>::transform(srcVal, dst, op, y, x);
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(492): error: incomplete type "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
typedef typename tuple_element<count - 1, DstPtrTuple>::type dst_ptr_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(61): error: a class or namespace qualified name is required
typedef typename Ptr2D::value_type value_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(61): error: global-scope qualifier (leading "::") is not allowed
typedef typename Ptr2D::value_type value_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(61): error: expected a ";"
typedef typename Ptr2D::value_type value_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(62): error: a class or namespace qualified name is required
typedef typename Ptr2D::index_type index_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(62): error: global-scope qualifier (leading "::") is not allowed
typedef typename Ptr2D::index_type index_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/../ptr2d/traits.hpp(62): error: expected a ";"
typedef typename Ptr2D::index_type index_type;
^
detected during:
instantiation of class "cv::cudev::PtrTraitsBase<Ptr2DSz, Ptr2D> [with Ptr2DSz=<error-type>, Ptr2D=<error-type>]" at line 80
instantiation of class "cv::cudev::PtrTraits<Ptr2DSz> [with Ptr2DSz=<error-type>]" at line 493 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(493): error: class "cv::cudev::PtrTraits<<error-type>>" has no member "value_type"
typedef typename PtrTraits<dst_ptr_type>::value_type dst_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, true>>]" at line 167 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(518): error: incomplete type "cuda::std::__4::tuple_size<cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_size<cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
Unroll<tuple_size<DstPtrTuple>::value>::transform(srcVal, dst, op, y, x);
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 177 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(492): error: incomplete type "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::PtrTraitsBase<cv::cudev::ZipPtrSz<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type, cv::cudev::PtrTraitsBase<cv::cudev::GpuMat_<float>, cv::cudev::GlobPtr<float>>::ptr_type>>>::ptr_type>" (aka "cuda::std::__4::tuple_element<<error-constant>, cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>>") is not allowed
typedef typename tuple_element<count - 1, DstPtrTuple>::type dst_ptr_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 177 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
/opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/transform.hpp(493): error: class "cv::cudev::PtrTraits<<error-type>>" has no member "value_type"
typedef typename PtrTraits<dst_ptr_type>::value_type dst_type;
^
detected during:
instantiation of "void cv::cudev::grid_transform_detail::Unroll<count>::transform(const SrcVal &, DstPtrTuple &, const OpTuple &, int, int) [with count=<error-constant>, SrcVal=float2, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 518
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple(SrcPtr, DstPtrTuple, OpTuple, MaskPtr, int, int) [with SrcPtr=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 527
instantiation of "void cv::cudev::grid_transform_detail::transform_tuple<Policy,SrcPtrTuple,DstPtrTuple,OpTuple,MaskPtr>(const SrcPtrTuple &, const DstPtrTuple &, const OpTuple &, const MaskPtr &, int, int, cudaStream_t) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtrTuple=cv::cudev::GlobPtr<float2>, DstPtrTuple=cv::cudev::ZipPtr<thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GlobPtr<float>, cv::cudev::GlobPtr<float>>>, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>, MaskPtr=cv::cudev::WithOutMask]" at line 280 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple_<Policy,SrcPtr,D0,D1,OpTuple>(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with Policy=cv::cudev::DefaultTransformPolicy, SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 576 of /opencv_contrib/modules/cudev/include/opencv2/cudev/grid/transform.hpp
instantiation of "void cv::cudev::gridTransformTuple(const SrcPtr &, const thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::GpuMat_<D0> &, cv::cudev::GpuMat_<D1> &> &, const OpTuple &, cv::cuda::Stream &) [with SrcPtr=cv::cudev::GlobPtrSz<float2>, D0=float, D1=float, OpTuple=thrust::THRUST_200500_500_520_600_610_700_750_800_860_890_900_NS::tuple<cv::cudev::magnitude_interleaved_func<float2>, cv::cudev::direction_interleaved_func<float2, false>>]" at line 177 of /opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu
12 errors detected in the compilation of "/opencv_contrib/modules/cudaarithm/src/cuda/polar_cart.cu".
CMake Error at cuda_compile_1_generated_polar_cart.cu.o.Release.cmake:280 (message):
Error generating file
/opencv/build/modules/cudaarithm/CMakeFiles/cuda_compile_1.dir/src/cuda/./cuda_compile_1_generated_polar_cart.cu.o
make[2]: *** [modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/build.make:18983: modules/cudaarithm/CMakeFiles/cuda_compile_1.dir/src/cuda/cuda_compile_1_generated_polar_cart.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3606: modules/cudaarithm/CMakeFiles/opencv_cudaarithm.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
```
##### Steps to reproduce
Build OpenCV with CUDA and cudnn with CUDA 12.6.
##### Issue submission checklist
- [ x ] I report the issue, it's not a question
<!--
OpenCV team works with forum.opencv.org, Stack Overflow and other communities
to discuss problems. Tickets with questions without a real issue statement will be
closed.
-->
- [ x ] I checked the problem with documentation, FAQ, open issues,
forum.opencv.org, Stack Overflow, etc and have not found any solution
- [ x ] I updated to the latest OpenCV version and the issue is still there
- [ x ] There is reproducer code and related data files: videos, images, onnx, etc