std::numeric_limits is a base template whose specializations (for integral and floating point types) expose the various properties of those numerical types (limits and behaviour).
The template can be specialized for user types.
Compiler Explorer link: https://compiler-explorer.com/z/rP7nze7P9