Thanks for pointing out this issue. Actually, this was already fixed in the
default branch. I backported the fix.

cheers,
gael



On Wed, Mar 20, 2019 at 3:45 PM Oleg Shirokobrod <[email protected]>
wrote:

> Hi,
>
> Compilation of Cwise_erf.cpp. Cwise_erfc.cpp and Cwise_lgamma.cpp examples
> failed with VS 2017 compiler. It failed because macro EIGEN_HAS_C99_MATH in
> Macros.h defined to 0. This macro is used only for cwise calculation of
> special functions in unsupported module. It is defined to 0 because msvc
> does not define __STDC_VERSION__ macro although vs 2017 implements C++11
> standard and implements erf, erfc and lgamma functions which are only
> necessary for Eigen special functions module. I suggest to modify macro
> EIGEN_HAS_C99_MATH definition in Macros.h file.
> Instead of
>
> // Does the compiler support C99?
> #ifndef EIGEN_HAS_C99_MATH
> #if EIGEN_MAX_CPP_VER>=11 && \
>     ((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901))       \
>   || (defined(__GNUC__) && defined(_GLIBCXX_USE_C99)) \
>   || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)))
>
>   #define EIGEN_HAS_C99_MATH 1
> #else
>   #define EIGEN_HAS_C99_MATH 0
> #endif
> #endif
>
> define
>
> // Does the compiler support C99?
> #ifndef EIGEN_HAS_C99_MATH
> #if EIGEN_MAX_CPP_VER>=11 && \
>     ((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901))       \
>   || (defined(__GNUC__) && defined(_GLIBCXX_USE_C99)) \
>   || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)) \
>   || (defined(_MSC_VER) && _MSVC_LANG >= 201402))
>
>   #define EIGEN_HAS_C99_MATH 1
> #else
>   #define EIGEN_HAS_C99_MATH 0
> #endif
> #endif
>
> With this modification VS 2017 compiles examples and gives write results.
>
> Best regards,
>
> Oleg Shirokobrod.
>

Reply via email to