EASTL failed due to error C2664 on MSVC + /std:c++latest
Environment: Windows Server 2016 + VS2019 + EASTL master branch latest d996510 source code.
EASTL failed to build due to error C2664: 'void (const char8_t *)': cannot convert argument 1 from 'const char [51]' to 'const char8_t *'. Could you help have a look about this issue? Thanks in advance!
repro step:
- git clone https://github.com/electronicarts/EASTL F:\EASTL\src
- Open a VS 2019 x86 command prompt as admin and browse to F:\EASTL\src
- git submodule update --init
- mkdir build_x64 && pushd build_x64
- set CL=/std:c++latest
- cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.18362.0 -DEASTL_BUILD_TESTS:BOOL=ON -DEASTL_BUILD_BENCHMARK:BOOL=OFF ..
- msbuild /m /p:Platform=x64 /p:Configuration=Release EASTL.sln /t:Rebuild
Actual result: F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(210,47): error C2664: 'int fputs(const char *,FILE *)': cannot convert argument 1 from 'const char8_t *' to 'const char *' [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(286,101): error C2665: 'EA::StdC::Vsnprintf': none of the 4 overloads could convert all the argument types [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(286,40): error C2789: 'nReturnValue': an object of const-qualified type must be initialized [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(294,47): error C2664: 'void (const char8_t *)': cannot convert argument 1 from 'char [2048]' to 'const char8_t *' [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(297,82): error C2664: 'void (const char8_t *)': cannot convert argument 1 from 'const char [39]' to 'const char8_t *' [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(311,94): error C2665: 'EA::StdC::Vsnprintf': none of the 4 overloads could convert all the argument types [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(312,52): error C2664: 'void (const char8_t *)': cannot convert argument 1 from 'char *' to 'const char8_t *' [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj] F:\gitP\electronicarts\EASTL\test\packages\EAMain\source\EAMain.cpp(316,98): error C2664: 'void (const char8_t *)': cannot convert argument 1 from 'const char [51]' to 'const char8_t *' [F:\gitP\electronicarts\EASTL\build_x64\test\packages\EAMain\EAMain.vcxproj]