| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Сообщение компилятора VC++ 6.0 |
| Автор: AndreySol 23.1.2007, 08:09 | ||
Что сие значит ? И как с этим бороться ? Я так примерно понял что компилятор обнаружил двойное включение этого хедера, и что он сделал: одно из них проигнорировал или обработал оба, а меня просто проинформировал ? |
| Автор: Nuzur 23.1.2007, 11:28 | ||
AndreySol, ну насколько я понимаю STREAMS.H это ваш класс. Отсуда вопрос, а предусмотрели вы
судя по сообщению компилятора нет. Удачи! |
| Автор: AndreySol 23.1.2007, 19:14 |
| Понял, спасибо. |
| Автор: nonstop 24.1.2007, 08:56 |
| #pragma once все же короче |
| Автор: Nuzur 24.1.2007, 18:32 |
| nonstop, There is also an explicit directive to tell the preprocessor that it need not include a file more than once. This is called `#pragma once', and was used in addition to the `#ifndef' conditional around the contents of the header file. `#pragma once' is now obsolete and should not be used at all. Надеюсь перевести сам сможеш. Удачи! |
| Автор: SergeCpp 24.1.2007, 21:31 |
| Nuzur, Ваша цитата дословно есть, в частности, http://docs.freebsd.org/info/cpp/cpp.info.Once-Only.html Замечу, что FREEBSD.ORG != Microsoft Visual C++ 6.0 Использую сам (именно в VC++ 6.0 SP6) и рекомендую использовать #pragma once Весьма полезно будет прочитать вот эту вот статью и комментарии к ней http://www.gamesfromwithin.com/articles/0501/000067.html http://www.convexhull.com/mt/mt-comments.cgi?entry_id=67 |
| Автор: Nuzur 25.1.2007, 12:47 | ||||
SergeCpp, спасибо гляну, кроме того я брал ее с gcc и вроде редактировал и вставлял ссылку, но видно недоредактировал
100%, только вот беда, а кто сказал что человек на 6-й студии клипает то? И кто сказал что ему ненужно потм будет использовать где-нить еще? Типа Стримс не может быть библиотекой? И тем паче кросс-платформенной? А окромя того ведь то что в ОС должно быть ядро, к примеру, написано не только у мелкомягких но и у Яблочных и Красноглазых, так что теперь, если я найду про сие ссылку у Яблочных значит мелкомягкие не могут использовать? Бред. ИМХО. А особенно умиляет то что имя сайта не равно названию среды разработки, даже в стрингах не равно. ТРУ.
Потому что гладиолус? Я тоже юзаю, в данный момент VC++ 6.0 SP6, и рекомендую свой вариант. Священная война начинаетсо? Открыл ссылки и понял что читать не буду ЗЫ: Кстати сама студия( Которой вы и пользуетесь ) использует оба варианта одновременно, это я к святой паранои разработчика. Если честно то всегда, когда классы с нуля делал, всегда использовал только #if !defined #define теперь возможно буду использовать #pragma once, такая предосторожность лишней не будет |
| Автор: SergeCpp 25.1.2007, 12:57 |
А Вы название темы посмотрите... Так там же результаты тестов. Их можно и повторить. P.S. То, что #if медленнее — логично. Ведь компилятору приходится искать парный (читать файл) И ещё. Территориальная разнесённость #if и #endif. Нехорошо это. В данном случае — особенно Самое же главное тут, что #if — это всё-таки workaround в отличие от (хотя и не стандартизованной) once http://en.wikipedia.org/wiki/Pragma_once http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_predir_once.asp Про "obsolete" не упоминается |
| Автор: Nuzur 25.1.2007, 16:05 |
| SergeCpp, кстати, по ссылке на вики есть моя цЫтата |