Yes: these are different functions, they can have different exception specifications.
If the virtual member function has an exception specification, any override (not overload) must contain an exception specification that is at least as strict as the member function that is being redefined.
Of course, you should never write an exception specification , except in the few situations where you should .
Visual C ++ does not fully support exception specifications, so it assumes that some code is really not suitable for the C ++ language specification. The warning you mentioned simply means that you are using code that uses a C ++ language function not supported by Visual C ++:
A function is declared using the exception specification, which Visual C ++ accepts but does not implement. Code with exceptions that are ignored during compilation may need to be recompiled and linked in order to reuse them in future versions that support exception specifications.
source share