GuillaumeDua / GCL_CPP

Makes my C++ projects easier and faster to develop
Apache License 2.0
10 stars 2 forks source link

[BUG] Clang-CL support #25

Closed GuillaumeDua closed 3 years ago

GuillaumeDua commented 3 years ago

Component name

See https://developercommunity.visualstudio.com/t/msvc-clang-cl-stl-issue-error-use-of-undeclared-id/1392703

Context

Describe the bug

>------ Build All started: Project: GCL_CPP, Configuration: x64-Clang-Debug ------
  [1/2] Building CXX object tests\CMakeFiles\gcl_test_binary.dir\Main.cpp.obj
  FAILED: tests/CMakeFiles/gcl_test_binary.dir/Main.cpp.obj 
  C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\Llvm\x64\bin\clang-cl.exe  /nologo -TP  -I..\..\..\includes -m64 -fdiagnostics-absolute-paths  /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 -std:c++latest /showIncludes /Fotests\CMakeFiles\gcl_test_binary.dir\Main.cpp.obj /Fdtests\CMakeFiles\gcl_test_binary.dir\ -c -- ..\..\..\tests\Main.cpp
  In file included from ..\..\..\tests\Main.cpp:19:
  In file included from ..\..\..\includes\gcl/mp/pack_traits.hpp:3:
  In file included from ..\..\..\includes\gcl/mp/type_traits.hpp:61:
  In file included from C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\bitset:11:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\iosfwd(109,39): error : use of undeclared identifier 'is_integral_v'
      template <class _Int, enable_if_t<is_integral_v<_Int>, int> = 0>
                                        ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\iosfwd(114,39): error : use of undeclared identifier 'is_integral_v'
      template <class _Int, enable_if_t<is_integral_v<_Int>, int> = 0>
                                        ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\iosfwd(123,39): error : use of undeclared identifier 'is_integral_v'
      template <class _Int, enable_if_t<is_integral_v<_Int>, int> = 0>
                                        ^
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\iosfwd(128,39): error : use of undeclared identifier 'is_integral_v'
      template <class _Int, enable_if_t<is_integral_v<_Int>, int> = 0>
                                        ^

To Reproduce

#include <gcl/mp/function_traits.hpp>
#include <gcl/mp/pack_traits.hpp>
int main(void)
{
    return 0;
}

Expected behavior

Should compile,
or get stuck to another Clang/Clang-CL related error cannot mangle std::tuple<auto>

Additional context

See https://developercommunity.visualstudio.com/t/msvc-clang-cl-stl-issue-error-use-of-undeclared-id/1392703

GuillaumeDua commented 3 years ago

Dev branch : https://github.com/GuillaumeDua/GCL_CPP/tree/gcl_v2_clang_support

GuillaumeDua commented 3 years ago

Fixed in #28