Re[4]: Как вы относитесь к #include посреди cpp?
От: MasterZiv СССР  
Дата: 08.10.10 05:50
Оценка: :))
Pzz wrote:

> "Ешь" пишется с мягким знаком на конце. И не делать этого — все равно,

> как #include посреди файла писать

Поучи бабушку щи варить лучше.
Мягкий знак пишется на конце глаголов в неопределённой форме.
Тут — второе лицо, единственное число.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Как вы относитесь к #include посреди cpp?
От: MasterZiv СССР  
Дата: 08.10.10 06:08
Оценка:
Sni4ok wrote:

> вы вбили себе что-то в голову(типа goto плохо, инклуды посреди файла

> плохо и т.п),

Я ничего не вбивал. Это -- опыт. Сын ошибок трудных.
Выгоды от непомещения #include наверх файла никакой.
Польза есть -- хорошо оформлен код. Понятие
"код хорошо оформлен" к сожалению сложное и многогранное.
Я не смогу сейчас объяснить его преимущества.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Как вы относитесь к #include посреди cpp?
От: dilmah США  
Дата: 08.10.10 07:30
Оценка:
MZ>Я ничего не вбивал. Это -- опыт. Сын ошибок трудных.
MZ>Выгоды от непомещения #include наверх файла никакой.

возможно, что выгоды нет никакой, если инклуд ставят просто рядом с местом использования. Я никогда так не делал, и не страдал.

Но выше привели ряд приемов, которые полезны, и при которых используется включение инклудов не в начало.

(1) .inl хедеры, в которых пишут определения инлайновых функций, либо шаблонных функций, методов шаблонных классов. Их обычно включают в конец соответствующего хедера. Это регулярный прием. Их выделяют в отдельные файлы, потому что физически они должны быть вместе с .h файлом, но логичски они больше похожи на .cc файлы. Инклудят их в конец чтобы было после определений нужных классов/структур.

(2) Автогенерированные данные. Скрипт генерирует файл с колонкой чисел, далее этот файл включается непосредственно в том месте где определяется соответствующий массив. Если здесь придерживаться помещения #include только в начало, то тогда скрипту придется генерировать не только колонку цифр, но и весь этот boilerplate необходимый для хедеров -- то есть скрипт начинает заниматься не свои делом, а во вторых знание этого boilerplate приходится помещать в этот скрипт, которому нет никакой нужды про него знать.

(3) X-Macros. Мне неоднократно встречались ситуации, когда есть некий набор связанных сущностей, который можно оформить в виде таблицы. Из этих сущностей нужно слепить код, но при этом зависимости между сущностями размазываются по коду. Универсальное решение -- это использовать кодогенерацию, но это слишком мощное решение, и во многих случаях достаточно препроцессора и X-Macros приема.
Самый простой пример использования -- у тебя есть enum и соответсвенно набор констант, и есть набор каких-то других вещей, скажем, строк, которые взаимно однозначно соответствуют каждой константе из энума. С техникой X-Macros все красиво -- ты оформляешь один файл с таблицей соответствия константа<->строка, и дальше манипулируешь им. Если это не делать, то константы и их соответсвия размазываются и дублируются по коду.
Re[5]: Как вы относитесь к #include посреди cpp?
От: Pzz Россия https://github.com/alexpevzner
Дата: 08.10.10 08:19
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Поучи бабушку щи варить лучше.

MZ>Мягкий знак пишется на конце глаголов в неопределённой форме.
MZ>Тут — второе лицо, единственное число.

Круто! Расскажи еще что-нибудь такое же смешное.
Re[4]: Как вы относитесь к #include посреди cpp?
От: alzt  
Дата: 08.10.10 11:47
Оценка:
Здравствуйте, frogkiller, Вы писали:

MZ>>Аааа, вот они, повылазили.

MZ>>Лентяи и раздолбаи.
MZ>>Моё мнение по этому поводу -- лень мотать -- иди работай грузчиком.

F>Лень — двигатель прогресса и враг копипасты


копипаст обычно от лени и добавляют, т.к. не охото тратить время на нормальное решение.
Re[6]: Как вы относитесь к #include посреди cpp?
От: MasterZiv СССР  
Дата: 08.10.10 15:22
Оценка:
dilmah wrote:

> Но выше привели ряд приемов, которые полезны, и при которых используется

> включение инклудов не в начало.

Это вообще отдельные случаи, тут конечно спору нет.
Можно и нужно.
Я думаю, автор имел в виду всё же НЕ эти случаи.
Posted via RSDN NNTP Server 2.1 beta
Re: Как вы относитесь к #include посреди cpp?
От: Олег К.  
Дата: 11.10.10 01:43
Оценка:
Отношусь отрицательно но советую смириться. Это избытки нашей профессии.

Со мной сейчас работает товарищ. Так ему если нужна константа в середине функции, то он вместо того чтобы написать
const int MyConstant = 5;

пишет
#define MY_CONSTANT 5

Именно в середине функции.
Re[2]: Как вы относитесь к #include посреди cpp?
От: jazzer Россия Skype: enerjazzer
Дата: 11.10.10 06:11
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Отношусь отрицательно но советую смириться. Это избытки нашей профессии.


ОК>Со мной сейчас работает товарищ. Так ему если нужна константа в середине функции, то он вместо того чтобы написать

ОК>
ОК>const int MyConstant = 5;
ОК>

ОК>пишет
ОК>
ОК>#define MY_CONSTANT 5
ОК>

ОК>Именно в середине функции.

Гнать надо таких в шею, а не смиряться.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.