#include template T foo(T a) { return std::copysign(a, static_cast(-1.0)); }