Errors with 1.69 when compiling with /clr on MSVC
I get the following warning and error when compiling a C++/CLI file that includes boost 1.69.
1>c:\quinesoftwarebase\include\boost\type_traits\detail\is_member_function_pointer_cxx_11.hpp(114): error C2764: 'C': template parameter not used or deducible in partial specialization 'boost::is_member_function_pointer
On 29/12/2018 16:52, Stian Zeljko Vrba via Boost-users wrote:
I get the following warning and error when compiling a C++/CLI file that includes boost 1.69.
1>c:\quinesoftwarebase\include\boost\type_traits\detail\is_member_function_pointer_cxx_11.hpp(114): error C2764: 'C': template parameter not used or deducible in partial specialization 'boost::is_member_function_pointer
' 1>c:\quinesoftwarebase\include\boost\type_traits\detail\is_member_function_pointer_cxx_11.hpp(125): warning C4575: '__vectorcall' incompatible with the '/clr' option: converting to '__stdcall' Is there a workaround for this?
Lot's of code editing :( Can you please file an issue on https://github.com/boostorg/type_traits/issues and I'll try and get to it shortly. BTW I only see the warnings, not the error with msvc-14.1, which msvc version are you using? Best, John. --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
Hi,
Lot's of code editing :(
I figured out how to fix that with search/replace, __clrcall was missing C::* and some parentheses. Now it compiles, but I still get the warning about __vectorcall being incompatible with /clr. However, while doing that I also noticed another oddity in that file: stdcall, fastcall and cdecl conventions are inside an #ifndef _M_AMD64 block. Why -- these conventions are usable also on x64? I use Visual Studio 15.7.2, toolset v14.1, compiler version string Microsoft(R) C/C++ Optimizing Compiler Version 19.14.26429.4 for x64 and I target C++/CLI for x64. Doug has already reported it as #99 -- Stian
Boost - Users mailing list wrote
I get the following warning and error when compiling a C++/CLI file that includes boost 1.69.
1>c:\quinesoftwarebase\include\boost\type_traits\detail\is_member_function_pointer_cxx_11.hpp(114): error C2764: 'C': template parameter not used or deducible in partial specialization 'boost::is_member_function_pointer<Ret(Args...)>' 1>c:\quinesoftwarebase\include\boost\type_traits\detail\is_member_function_pointer_cxx_11.hpp(125): warning C4575: '__vectorcall' incompatible with the '/clr' option: converting to '__stdcall'
Is there a workaround for this?
Stian, I have recently made changes to the 2 relevant files and shared them for you. They deal with the issue for me. https://1drv.ms/f/s!Auh9GRj1YtuPuP545hS6BPhF0apLzQ --Doug. -- Sent from: http://boost.2283326.n4.nabble.com/Boost-Users-f2553780.html
participants (3)
-
dswallow
-
John Maddock
-
Stian Zeljko Vrba