[utils] use declval<T>() instead of T(0).