candle
candle copied to clipboard
Windows Cuda Compatibility?
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...
compilation errors are sometimes because missing libraries in the path. do you have the proper coda paths set.
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?
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
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
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?
for deployment i needed to bundle cuda and cudnn with my app.
Breaking for 12.9. Do I need to downgrade CUDA?
Got a 3060 (12 GB on windows 11)
...
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...
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
https://github.com/huggingface/candle/issues/2458#issuecomment-2395105657