Несколько вопросов по стандарту:
1) Стандарт запрещает пользователю использовать зарезервированные имена, запрещает ли он также изготовителю компилятора использовать не определенные стандартом незарезервированные имена? Если да, то где это написано?
2) Запрещает ли стандарт изготовителю компилятора добавлять нестандартные заголовочные файлы?
3) Запрещает ли стандарт изготовителю компилятора использовать незарезервированные имена в нестандартных заголовочных файлах?
4) Каким образом стандарт заставил Microsoft использовать зарезервированные имена в нестандартном (с точки зрения стандарта языка) заголовочном файле io.h, в то время как имена в заголовочном файле windows.h большей частью нормальные? То есть почему open вдруг стал deprecated и нужно видите ли использовать _open, а CreateFile нет?
Мои ответы:
1) Не уверен, но похоже не запрещает (а должен бы).
2) Нет.
3) Конечно нет.
4) Никаким, это непрошенная самодеятельность Microsoft.
Возражайте, пожалуйста.
PS. Вопросы и ответы в равной мере относятся и к C, и к C++.
Здравствуйте, igna, Вы писали:
I>1) Стандарт запрещает пользователю использовать зарезервированные имена, запрещает ли он также изготовителю компилятора использовать не определенные стандартом незарезервированные имена? Если да, то где это написано?
Ничего не запрещается. Просто декларируется что определенный сабсет имен зарезервирован и можно получить UB если использовать эти имена в своих программах.
I>2) Запрещает ли стандарт изготовителю компилятора добавлять нестандартные заголовочные файлы?
Что ты понимаешь под "добавлять нестандартные заголовочные файлы"? Генерить ошибку на #include с "нестандартным" именем файла?
I>3) Запрещает ли стандарт изготовителю компилятора использовать незарезервированные имена в нестандартных заголовочных файлах?
???
I>4) Каким образом стандарт заставил Microsoft использовать зарезервированные имена в нестандартном (с точки зрения стандарта языка) заголовочном файле io.h
I>То есть почему open вдруг стал deprecated и нужно видите ли использовать _open
Это самодеятельность МС а не стандарт заставил.
Всё как обычно ИМХО
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока