Remove assumption of std::complex for complex scalar types.
For real scalars, we still default to std::complex
. But otherwise, if a scalar type is already NumTraits<T>::IsComplex
, then we retain that type as the complex type. Fixes #2865 (closed).