I used msvs and cuda12.0
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\include\cuda\std\detail/libcxx/include/type_traits(4404): error C2338: Attempt to use an extended device lambda in a context that requires querying its return type in host code. Use a named function object, a host device lambda, or cuda::proclaim_return_type instead.
1>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\include\cuda\std\detail/libcxx/include/type_traits(4416): note: 查看对正在编译的 类 模板 实例化“cuda::std::__4::__invoke_of<_Fp,lbvh::aabb,lbvh::aabb>”的引用
1> with
1> [
1> _Fp=__nv_dl_wrapper_t<__nv_dl_tag<void (__cdecl lbvh::bvh<float,float4,aabb_getter,lbvh::default_morton_code_calculator<float,float4>>::* )(void),void lbvh::bvh<float,float4,aabb_getter,lbvh::default_morton_code_calculator<float,float4>>::construct(void),1>>
1> ]
1>C:\Users\91929\AppData\Local\Temp\tmpxft_00003454_00000000-7_main.cudafe1.stub.c(153): note: 查看对正在编译的 类 模板 实例化“cuda::std::__4::result_of<__nv_dl_wrapper_t<__nv_dl_tag<void (__cdecl lbvh::bvh<float,float4,aabb_getter,lbvh::default_morton_code_calculator<Real,Object>>::* )(void),void lbvh::bvh<Real,Object,aabb_getter,lbvh::default_morton_code_calculator<Real,Object>>::construct(void),1>> (lbvh::aabb,lbvh::aabb)>”的引用
1> with
1> [
1> Real=float,
1> Object=float4
1> ]
1>C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.0/include\cub/detail/type_traits.cuh(53): note: 查看对正在编译的 别名 模板 实例化“cub::detail::invoke_result_t<__nv_dl_wrapper_t<__nv_dl_tag<void (__cdecl lbvh::bvh<float,float4,aabb_getter,lbvh::default_morton_code_calculator<Real,Object>>::* )(void),void lbvh::bvh<Real,Object,aabb_getter,lbvh::default_morton_code_calculator<Real,Object>>::construct(void),1>>,lbvh::aabb,lbvh::aabb>”的引用
1> with
1> [
1> Real=float,
1> Object=float4
1> ]
1>C:\Users\91929\AppData\Local\Temp\tmpxft_00003454_00000000-7_main.cudafe1.stub.c(153): note: 查看对正在编译的 别名 模板 实例化“cub::detail::accumulator_t<__nv_dl_wrapper_t<__nv_dl_tag<void (__cdecl lbvh::bvh<float,float4,aabb_getter,lbvh::default_morton_code_calculator<Real,Object>>::* )(void),void lbvh::bvh<Real,Object,aabb_getter,lbvh::default_morton_code_calculator<Real,Object>>::construct(void),1>>,lbvh::aabb,lbvh::aabb>”的引用
1> with
1> [
1> Real=float,
1> Object=float4
1> ]