Hints for resolving deprecated functionality
In Eigen 5.0.0, several functions/methods have been deprecated such as initParallel, .eulerAngles(), .jacobiSvd() and .bdcSvd() with the runtime options parameter and so on just to name a few.
However, it is not immediately clear what functionality should be preferred instead. For instance, instead of .eulerAngles() the preferred implementation seems to be .canonicalEulerAngles, the options to .jacobSvd() and .bdcSvd() should be passed as a template argument, etc.
It would be great to have such hints in the deprecation message to ease the update from Eigen 3.4.0. For this, Eigen could use the following macro:
#ifndef EIGEN_NO_DEPRECATED_WARNING
#if EIGEN_COMP_GNUC
#define EIGEN_DEPRECATED_WITH_REASON(message) __attribute__((deprecated(message)))
#elif EIGEN_COMP_MSVC
#define EIGEN_DEPRECATED_WITH_REASON(message) __declspec(deprecated(message))
#else
#define EIGEN_DEPRECATED_WITH_REASON(message)
#endif
#else
#define EIGEN_DEPRECATED_WITH_REASON(message)
#endif
to specify the hint instead of using the generic EIGEN_DEPRECATED.