D_abs should probably be static inline in MSVC too