| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > #include внутри namespace |
| Автор: ANTON_AL 19.8.2007, 11:08 | ||||||||
| Доброго дня! Попробовал написать такие строки: a.h
main.cpp
Студия ушла в себя на 2 минуты, в итоге выдала 277 ошибок:
Когда выношу <windows.h> за пределы namespace: a.h
. . . всё собирается без ошибок. Как такое понимать ?? |
| Автор: archimed7592 19.8.2007, 11:22 |
| Думаю примерно так: в d3d9.h используются typdef'ы из windows.h, но все они находятся в пространстве имён и, соответственно, недоступны в d3d9.h, несмотря на то, что он, возможно, делает собственный #include <windows.h> - стражи #ifndef->#define->#endif делают своё дело. И ещё, извиняюсь за глупый вопрос: а разве windows.h - это не туева хуча extern "C" конструкций, которым в пространстве имён вроде как(??) не место, а даже если и место, то разве не упадёт линкер при поиске в библиотеке имён с префиксом Platform_Win32::? |
| Автор: Earnest 20.8.2007, 10:15 |
| Не забывайте о том, что директива #include - это прямая вставка текста. Просишь вставить внутрь пространства имен - какие вопросы, вставим. Только потом без претензий к компилятору, пжлст. Макроопределениям же (#define) пространства имен по барабану. А вот все структуры оказываются в нем, в пространстве этом (т.е. ты это компилятору обещаешь), а потом оказывается, что обманываешь. |