I think the topic title is self-explanatory.
So far, it seems that set_target_properties(${TARGET_NAME} PROPERTIES CXX_EXTENSIONS OFF) does nothing more than using -std=c++xx instead of -std=gnu++xx.
For gcc I must add -pedantic-errors, for clang it seems that you must add an error flag per extension, these I don’t have the list of. Fr msvc /permissive- seems enough.
Regards