03 дек 2008, 12:57
И ещё добавлю. Директива препроцессора #pragma является компилятор зависимой. Каждый компилятор может по своему интерпретировать параметры этой директивы. По этой же причине все незнакомые параметры компилятор обязан игнорировать, не выдавая никакой ошибки. Параметр once является сугубо microsoft specific и для gcc он не имеет никакого смысла, потому он им игнорируется. Более того, даже для VS он не устранит ошибки мультиопределения, так как имеет совсем другой смысл. Его реальная функция - не позволить включиться данному header файлу дважды в одну и туже единицу трансляции, таким образом #pragma once является полноценной заменой header guard'ов.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.