Собсно, правила прежние. Убедить, что:
Хедеры должны допускать независимое включение.
Иными словами, он должен тянуть за собой все необходимое, в частности, включение его первым в .cpp не должно вызывать ошибок компиляции. Просто меня уже несколько задрало:
#include "coolclass.h"
bash$ gmake
... module.cpp: syntax error before &name
... тут еще мат компилятора на три страницы
#include <string>
#include "coolclass.h"
bash$ gmake
... и опять мат
Тут тоже все #censored#, но уже моим внутренним цензором, когда я в coolclass.h заменяю все вхождения string на std::string
bash$ gmake
... и опять мат, но уже по поводу class OurProgramException
И так десять итераций
. Вот мой напарник, работающий методом copy'n'paste — тот ничего, не жалуется.
Альтернативный вариант: убедить меня, что copy'n'paste тоже вполне себе метод
... << RSDN@Home 1.1.3 stable >>
Здравствуйте, Eugene Kilachkoff, Вы писали:
EK>Собсно, правила прежние. Убедить, что:
EK>
EK>Хедеры должны допускать независимое включение.
EK>
Отомстить человеку: выдрать изо всех .h-файлов все инклуды, и перетащить их
только в свои .cpp-шники.
Если пишешь на VC, можно выдрать #include <windows.h> из stdafx.h
Здравствуйте, Кодт, Вы писали:
К>Если пишешь на VC, можно выдрать #include <windows.h> из stdafx.h
сильная месть!
Здравствуйте, Кодт, Вы писали:
EK>>
EK>>Хедеры должны допускать независимое включение.
EK>>
К>Отомстить человеку: выдрать изо всех .h-файлов все инклуды, и перетащить их только в свои .cpp-шники.
К>Если пишешь на VC, можно выдрать #include <windows.h> из stdafx.h
Это уже диверсия — проект перестанет собираться.
Здравствуйте, Eugene Kilachkoff, Вы писали:
EK>Собсно, правила прежние. Убедить, что:
EK>
EK>Хедеры должны допускать независимое включение.
EK>
EK>Иными словами, он должен тянуть за собой все необходимое, в частности, включение его первым в .cpp не должно вызывать ошибок компиляции. Просто меня уже несколько задрало:
[skip]
EK>Альтернативный вариант: убедить меня, что copy'n'paste тоже вполне себе метод
С другой стороны может проще вставить в хедер что-то типа
[ccode]
/*
* CoolSuperHeader — ....
* depend on:
* #include <string.h>
* #include <AnotherCoolHeader.h>
*/
[ccode]
Потому, что тогда будет возможно использовать precompiled headers да и компиляция
будет быстрее.