candle icon indicating copy to clipboard operation
candle copied to clipboard

Windows Cuda Compatibility?

Open ChaseLewis opened this issue 1 year ago • 4 comments

On windows unable to use candle with cuda enabled. I'm using Cuda SDK 12.4 since that is what is supported by my pytorch install which runs fine. 🤔 Is Windows supported? Is there a specific Cuda SDK version that should be used? Not sure why it doesn't compile. There are hundreds of errors. Log below, but could be longer probably.

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include\sm_32_intrinsics.hpp(117): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];"  : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                          ^ 

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include\sm_32_intrinsics.hpp(118): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];"  : "=r"(ret.x), "=r"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include\sm_32_intrinsics.hpp(119): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];"  : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                    ^       

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include\sm_32_intrinsics.hpp(120): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];"  : "=l"(ret.x), "=l"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                                   ^

  Error limit reached.
  100 errors detected in the compilation of "src/cast.cu".
  Compilation terminated.
  cast.cu

  --- stderr
  thread 'main' panicked at C:\Users\Chase\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bindgen_cuda-0.1.5\src\lib.rs:391:13:
  nvcc error while compiling "src\\affine.cu":

  # CLI "nvcc" "--gpu-architecture=sm_89" "--ptx" "--default-stream" "per-thread" "--output-directory" "E:\\Dev\\WebNN\\target\\debug\\build\\candle-kernels-fc639e1b2bb65e3d\\out" "-Isrc" "-IC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.4\\include" "src\\affine.cu"

  # stdout


  # stderr

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

ChaseLewis avatar Nov 19 '24 17:11 ChaseLewis

compilation errors are sometimes because missing libraries in the path. do you have the proper coda paths set.

AlpineVibrations avatar Dec 06 '24 04:12 AlpineVibrations

I'm getting the same candle build errors on Windows for CUDA 12.6. Is there any solution for this? What libraries might be missing in the Path?

echelon avatar Feb 18 '25 21:02 echelon

i have these in debian 12

export CUDA_ROOT=/usr/local/cuda
export CUDA_PATH=/usr/local/cuda
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/nvidia/current

AlpineVibrations avatar Feb 18 '25 22:02 AlpineVibrations

adding the bin to to the cudnn helped me run the program but the problem is that compiled app still needs the cudnn to dynamically link... isnt there someway like on linux to not require the end user to install cudnn and figure out how to add the environment variable.

C:\Program Files\NVIDIA\CUDNN\v9.5\bin\12.6

AlpineVibrations avatar Mar 19 '25 15:03 AlpineVibrations

I was able to use cuda within docker but not native windows.

If anyone has a build script that works, could you please share it?

freedomtowin avatar Jun 28 '25 19:06 freedomtowin

for deployment i needed to bundle cuda and cudnn with my app.

AlpineVibrations avatar Jun 29 '25 22:06 AlpineVibrations

Breaking for 12.9. Do I need to downgrade CUDA?

Got a 3060 (12 GB on windows 11)

huge log vomit
...


  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\type_traits(1909): error: class template "std::_Function_args" has already been defined (previous definition at line 1909)
    template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)   > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile  > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile & > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...)  && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __cdecl(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };  template <class _Ret, class... _Types> struct _Function_args<_Ret __fastcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __stdcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; }; template <class _Ret, class... _Types> struct _Function_args<_Ret __vectorcall(_Types...) const volatile && > : _Arg_types<_Types...> { using result_type  = _Ret; };
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^

  C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt\malloc.h(55): error: more than one instance of overloaded function "_alloca" has "C" linkage
    void* __cdecl _alloca(  size_t _Size);
                  ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(125): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new( size_t, void*) throw();
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(126): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new[]( size_t, void*) throw();
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(267): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new( size_t) throw(...);
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(268): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new[]( size_t) throw(...);
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(267): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new( size_t) throw(...);
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(268): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new[]( size_t) throw(...);
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(267): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new( size_t) throw(...);
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\crt/common_functions.h(268): error: first parameter of allocation function must be of type "size_t"
    extern         __declspec(__host__) __declspec(__device__) __declspec(__cudart_builtin__) void*   __cdecl operator new[]( size_t) throw(...);
                                                                                                              ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(134): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_global_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(135): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_shared_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(136): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_constant_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(137): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_local_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(138): warning #1581-D: declaration overloads built-in function "__nv_cvta_global_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_global_to_generic_impl(size_t);
                                    ^

  Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(138): error: more than one instance of overloaded function "__nv_cvta_global_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_global_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(139): warning #1581-D: declaration overloads built-in function "__nv_cvta_shared_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_shared_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(139): error: more than one instance of overloaded function "__nv_cvta_shared_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_shared_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(140): warning #1581-D: declaration overloads built-in function "__nv_cvta_constant_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_constant_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(140): error: more than one instance of overloaded function "__nv_cvta_constant_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_constant_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(141): warning #1581-D: declaration overloads built-in function "__nv_cvta_local_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_local_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(141): error: more than one instance of overloaded function "__nv_cvta_local_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_local_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(196): error: asm operand type size(8) does not match type/size implied by constraint 'r'
      asm("cvta.to.param.u32 %0, %1;"  : "=r"(ret) : "r"(ptr));
                                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(210): error: asm operand type size(8) does not match type/size implied by constraint 'r'
      asm("cvta.param.u32 %0, %1;" : "=r"(ret) : "r"(in));
                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(134): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_global_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(135): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_shared_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(136): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_constant_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(137): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_local_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(138): warning #1581-D: declaration overloads built-in function "__nv_cvta_global_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_global_to_generic_impl(size_t);
                                    ^

  Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(138): error: more than one instance of overloaded function "__nv_cvta_global_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_global_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(139): warning #1581-D: declaration overloads built-in function "__nv_cvta_shared_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_shared_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(139): error: more than one instance of overloaded function "__nv_cvta_shared_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_shared_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(140): warning #1581-D: declaration overloads built-in function "__nv_cvta_constant_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_constant_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(140): error: more than one instance of overloaded function "__nv_cvta_constant_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_constant_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(141): warning #1581-D: declaration overloads built-in function "__nv_cvta_local_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_local_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(141): error: more than one instance of overloaded function "__nv_cvta_local_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_local_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(196): error: asm operand type size(8) does not match type/size implied by constraint 'r'
      asm("cvta.to.param.u32 %0, %1;"  : "=r"(ret) : "r"(ptr));
                                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(210): error: asm operand type size(8) does not match type/size implied by constraint 'r'
      asm("cvta.param.u32 %0, %1;" : "=r"(ret) : "r"(in));
                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(104): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline long __ldg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.s32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (long)ret; }
                                                                                                                                                      ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(105): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline unsigned long __ldg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.u32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return ret; }
                                                                                                                                                                        ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(109): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char __ldg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (char)ret; }
                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(110): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline signed char __ldg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (signed char)ret; }
                                                                                                                                                                  ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(111): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short __ldg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.s16 %0, [%1];"  : "=h"(ret) : "r" (ptr)); return (short)ret; }
                                                                                                                                                         ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(112): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int __ldg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (int)ret; }
                                                                                                                                                   ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(113): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline long long __ldg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.s64 %0, [%1];"  : "=l"(ret) : "r" (ptr)); return (long long)ret; }
                                                                                                                                                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(114): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char2 __ldg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.nc.v2.s8 {%0,%1}, [%2];"  : "=r"(tmp.x), "=r"(tmp.y) : "r" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; }
                                                                                                                                                                                ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(115): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char4 __ldg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.nc.v4.s8 {%0,%1,%2,%3}, [%4];"  : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "r" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; }
                                                                                                                                                                                                                ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(116): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short2 __ldg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.nc.v2.s16 {%0,%1}, [%2];"  : "=h"(ret.x), "=h"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                          ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(117): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];"  : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                          ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(118): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];"  : "=r"(ret.x), "=r"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(119): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];"  : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(120): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];"  : "=l"(ret.x), "=l"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                                   ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(104): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline long __ldg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.s32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (long)ret; }
                                                                                                                                                      ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(105): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline unsigned long __ldg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.u32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return ret; }
                                                                                                                                                                        ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(109): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char __ldg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (char)ret; }
                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(110): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline signed char __ldg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (signed char)ret; }
                                                                                                                                                                  ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(111): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short __ldg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.s16 %0, [%1];"  : "=h"(ret) : "r" (ptr)); return (short)ret; }
                                                                                                                                                         ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(112): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int __ldg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (int)ret; }
                                                                                                                                                   ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(113): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline long long __ldg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.s64 %0, [%1];"  : "=l"(ret) : "r" (ptr)); return (long long)ret; }
                                                                                                                                                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(114): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char2 __ldg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.nc.v2.s8 {%0,%1}, [%2];"  : "=r"(tmp.x), "=r"(tmp.y) : "r" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; }
                                                                                                                                                                                ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(115): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char4 __ldg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.nc.v4.s8 {%0,%1,%2,%3}, [%4];"  : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "r" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; }
                                                                                                                                                                                                                ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(116): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short2 __ldg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.nc.v2.s16 {%0,%1}, [%2];"  : "=h"(ret.x), "=h"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                          ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(117): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];"  : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                          ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(118): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];"  : "=r"(ret.x), "=r"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(119): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];"  : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(120): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];"  : "=l"(ret.x), "=l"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                                   ^

  Error limit reached.
  100 errors detected in the compilation of "src/unary.cu".
  Compilation terminated.
  Error limit reached.
  100 errors detected in the compilation of "src/fill.cu".
  Compilation terminated.
  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(134): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_global_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(135): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_shared_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(136): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_constant_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(137): error: cannot overload functions distinguished by return type alone
      __declspec(__device__) size_t __nv_cvta_generic_to_local_impl(const void *);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(138): warning #1581-D: declaration overloads built-in function "__nv_cvta_global_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_global_to_generic_impl(size_t);
                                    ^

  Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(138): error: more than one instance of overloaded function "__nv_cvta_global_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_global_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(139): warning #1581-D: declaration overloads built-in function "__nv_cvta_shared_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_shared_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(139): error: more than one instance of overloaded function "__nv_cvta_shared_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_shared_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(140): warning #1581-D: declaration overloads built-in function "__nv_cvta_constant_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_constant_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(140): error: more than one instance of overloaded function "__nv_cvta_constant_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_constant_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(141): warning #1581-D: declaration overloads built-in function "__nv_cvta_local_to_generic_impl"
      __declspec(__device__) void * __nv_cvta_local_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(141): error: more than one instance of overloaded function "__nv_cvta_local_to_generic_impl" has "C" linkage
      __declspec(__device__) void * __nv_cvta_local_to_generic_impl(size_t);
                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(196): error: asm operand type size(8) does not match type/size implied by constraint 'r'
      asm("cvta.to.param.u32 %0, %1;"  : "=r"(ret) : "r"(ptr));
                                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_20_intrinsics.hpp(210): error: asm operand type size(8) does not match type/size implied by constraint 'r'
      asm("cvta.param.u32 %0, %1;" : "=r"(ret) : "r"(in));
                                     ^

  unary.cu
  fill.cu
  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(104): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline long __ldg(const long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.s32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (long)ret; }
                                                                                                                                                      ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(105): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline unsigned long __ldg(const unsigned long *ptr) { unsigned long ret; asm volatile ("ld.global.nc.u32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return ret; }
                                                                                                                                                                        ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(109): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char __ldg(const char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (char)ret; }
                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(110): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline signed char __ldg(const signed char *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s8 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (signed char)ret; }
                                                                                                                                                                  ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(111): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short __ldg(const short *ptr) { unsigned short ret; asm volatile ("ld.global.nc.s16 %0, [%1];"  : "=h"(ret) : "r" (ptr)); return (short)ret; }
                                                                                                                                                         ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(112): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int __ldg(const int *ptr) { unsigned int ret; asm volatile ("ld.global.nc.s32 %0, [%1];"  : "=r"(ret) : "r" (ptr)); return (int)ret; }
                                                                                                                                                   ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(113): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline long long __ldg(const long long *ptr) { unsigned long long ret; asm volatile ("ld.global.nc.s64 %0, [%1];"  : "=l"(ret) : "r" (ptr)); return (long long)ret; }
                                                                                                                                                                     ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(114): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char2 __ldg(const char2 *ptr) { char2 ret; int2 tmp; asm volatile ("ld.global.nc.v2.s8 {%0,%1}, [%2];"  : "=r"(tmp.x), "=r"(tmp.y) : "r" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; return ret; }
                                                                                                                                                                                ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(115): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline char4 __ldg(const char4 *ptr) { char4 ret; int4 tmp; asm volatile ("ld.global.nc.v4.s8 {%0,%1,%2,%3}, [%4];"  : "=r"(tmp.x), "=r"(tmp.y), "=r"(tmp.z), "=r"(tmp.w) : "r" (ptr)); ret.x = (char)tmp.x; ret.y = (char)tmp.y; ret.z = (char)tmp.z; ret.w = (char)tmp.w; return ret; }
                                                                                                                                                                                                                ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(116): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short2 __ldg(const short2 *ptr) { short2 ret; asm volatile ("ld.global.nc.v2.s16 {%0,%1}, [%2];"  : "=h"(ret.x), "=h"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                          ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(117): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline short4 __ldg(const short4 *ptr) { short4 ret; asm volatile ("ld.global.nc.v4.s16 {%0,%1,%2,%3}, [%4];"  : "=h"(ret.x), "=h"(ret.y), "=h"(ret.z), "=h"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                          ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(118): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int2 __ldg(const int2 *ptr) { int2 ret; asm volatile ("ld.global.nc.v2.s32 {%0,%1}, [%2];"  : "=r"(ret.x), "=r"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(119): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline int4 __ldg(const int4 *ptr) { int4 ret; asm volatile ("ld.global.nc.v4.s32 {%0,%1,%2,%3}, [%4];"  : "=r"(ret.x), "=r"(ret.y), "=r"(ret.z), "=r"(ret.w) : "r" (ptr)); return ret; }
                                                                                                                                                                                                    ^

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\sm_32_intrinsics.hpp(120): error: asm operand type size(8) does not match type/size implied by constraint 'r'
    static __declspec(__device__) __inline longlong2 __ldg(const longlong2 *ptr) { longlong2 ret; asm volatile ("ld.global.nc.v2.s64 {%0,%1}, [%2];"  : "=l"(ret.x), "=l"(ret.y) : "r" (ptr)); return ret; }
                                                                                                                                                                                   ^

  Error limit reached.
  100 errors detected in the compilation of "src/reduce.cu".
  Compilation terminated.
  reduce.cu

  --- stderr

  thread 'main' panicked at C:\Users\souya\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\bindgen_cuda-0.1.5\src\lib.rs:391:13:
  nvcc error while compiling "src\\affine.cu":

  # CLI "nvcc" "--gpu-architecture=sm_86" "--ptx" "--default-stream" "per-thread" "--output-directory" "P:\\raffi\\target\\debug\\build\\candle-kernels-3f5834e7171d5821\\out" "-Isrc" "-IC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.9\\include" "src\\affine.cu"

  # stdout


  # stderr

  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

sansmoraxz avatar Sep 06 '25 16:09 sansmoraxz

OK I figured it out, this was burried in logs:

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\vcruntime.h(192): error: 
invalid redeclaration of type name "size_t"
        typedef unsigned int     size_t;
                                 ^

  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\vcruntime.h(192): error: 
invalid redeclaration of type name "size_t"
        typedef unsigned int     size_t;

ie need to activate environment with proper flags not rely on auto architecture from the visual studio activator script viz:

"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" x64

sansmoraxz avatar Sep 06 '25 16:09 sansmoraxz

https://github.com/huggingface/candle/issues/2458#issuecomment-2395105657

ivarflakstad avatar Nov 23 '25 21:11 ivarflakstad