These names are not reserved in standard C ++, as Rick Astley explained. An implementation may take additional reserved words to provide language extensions, such as a ref class in C ++ / CLI. In some cases, for example, with the ref class , where ref is the contextual keyword, these extensions only make malformed programs that are well formed in the scope of the extended language. In other cases, otherwise, a well-formed program may change its meaning or become ill-formed. In the first case, the implementation still complies with the C ++ standard if it provides all the required diagnostics; in the latter case, this is certainly not the case.
It is considered good practice to make the latter kind of extensions optional, for example. using the command line option, so the implementation still has a mode in which it is fully compliant. I immediately assume that VC ++ actually allows you to write well-formed programs containing yes , no , i , iter , which will behave in accordance with the requirements of the standard (despite implementation errors).
IDE is a different beast. It is considered outside the scope of the C ++ standard and may hinder or even hinder the writing of perfectly correctly formed code. It will still be a problem of quality of implementation or a problem of customer satisfaction if you do.
source share