If used, the exception specification must be the same as for all other declarations. A diagnostic is required only if the exception specifications are not the same within a single translation unit. Functions differing only in their exception specification cannot be overloaded (just like the return type, exception specification is part of function type, but not not part of the function signature) (since C++17).