Re[7]: Встроенный порядок в C/C++ за счет h-файлов
От: Homunculus Россия  
Дата: 10.02.22 07:27
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

H>>раздувание количества файлов в два раза

CC>От жеж беда какая

Беда. Ну люблю ничего лишнего, когда можно без этого обойтись.
Re[10]: Встроенный порядок в C/C++ за счет h-файлов
От: CreatorCray  
Дата: 10.02.22 07:30
Оценка:
Здравствуйте, Shmj, Вы писали:

S>А вы сворачиванием пользуетесь?

Очень иногда.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: Встроенный порядок в C/C++ за счет h-файлов
От: CreatorCray  
Дата: 10.02.22 07:30
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Беда. Ну люблю ничего лишнего, когда можно без этого обойтись.

Ну смотря что считать лишним.
Комменты в коде хоть пишешь?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[9]: Встроенный порядок в C/C++ за счет h-файлов
От: Homunculus Россия  
Дата: 10.02.22 07:32
Оценка: +3 :))
Здравствуйте, CreatorCray, Вы писали:

H>>Беда. Ну люблю ничего лишнего, когда можно без этого обойтись.

CC>Ну смотря что считать лишним.
CC>Комменты в коде хоть пишешь?

Комментарии цветом отфильтровываются мозгом.
А вот куча приватных полей и функций, которые нифига не интерфейс класса, но забивают h файл — визуально отфильтровать сложнее

Но это все фигня по сравнниею с тем, что надо тратить время на обдумывание включений. Какой файл куда подключать, куда не надо. А уж ругать компилятора про множетсвенные включения с реализацией несмотря на #pragma once — ммм, что может быть лучше да, когда вместо того, чтоб делать работу — занимаешься этой херней.
Отредактировано 10.02.2022 7:52 Homunculus . Предыдущая версия .
Re: Встроенный порядок в C/C++ за счет h-файлов
От: Vzhyk2  
Дата: 10.02.22 07:35
Оценка:
S>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.
Согласен — умные люди концепцию языка придумывали.
Re: Встроенный порядок в C/C++ за счет h-файлов
От: Shtole  
Дата: 10.02.22 08:57
Оценка: +1 :)
Здравствуйте, Shmj, Вы писали:

S>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.


А при неграмотном — как источник мерзких ошибок линкера. Предпочитаю систему, делающую этот вид проблем невозможным.
Do you want to develop an app?
Re[2]: Встроенный порядок в C/C++ за счет h-файлов
От: Shtole  
Дата: 10.02.22 09:02
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

S>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.

LVV>В Си — это не модуль, а файл.
LVV>Прошу не путать.

Сама по себе #include довольно рульная штука, как пример файлизма и текст-процессинга, хотя никто её в этом качестве не любит (

Мне даже в HTML не хватает, когда нужно, допустим, сделать футеры для локального хелпа — без сервера, скриптов, СМС и регистрации.
Do you want to develop an app?
Re[2]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:02
Оценка:
Здравствуйте, Shtole, Вы писали:

S>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.


S>А при неграмотном — как источник мерзких ошибок линкера.


Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.
The God is real, unless declared integer.
Re[10]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:05
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>>>Беда. Ну люблю ничего лишнего, когда можно без этого обойтись.

CC>>Ну смотря что считать лишним.
CC>>Комменты в коде хоть пишешь?

H>Комментарии цветом отфильтровываются мозгом.

H>А вот куча приватных полей и функций, которые нифига не интерфейс класса, но забивают h файл — визуально отфильтровать сложнее

Вот потому их ставят в отдельную секцию и обычно рекомендовано после публичных функций.

А вообще это идея: попросить авторов основных IDE дать настройки красить в зависимости от области видимости.
А ещё свёртывать приватную часть.

H>Но это все фигня по сравнниею с тем, что надо тратить время на обдумывание включений. Какой файл куда подключать, куда не надо. А уж ругать компилятора про множетсвенные включения с реализацией несмотря на #pragma once — ммм, что может быть лучше да, когда вместо того, чтоб делать работу — занимаешься этой херней.


Это когда такое происходит?
The God is real, unless declared integer.
Re[12]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:06
Оценка:
Здравствуйте, Shmj, Вы писали:

KP>>Очень редко, ближе к почти никогда. Хотя в Vim даже ставить для этого ничего не надо, и za работает из коробки.


S>Но тут в чем фишка. Иногда нужно видеть все тела методов закрытыми (когда ты в режиме архитектора). А иногда нужно видеть сразу все открытым — и достает кликать по каждому методу, если они сокрыты по умолчанию.


У vim есть полный набор команд "свернуть всё", "развернуть всё"...
The God is real, unless declared integer.
Re[3]: Встроенный порядок в C/C++ за счет h-файлов
От: Vzhyk2  
Дата: 10.02.22 09:09
Оценка:
N>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.
Эт ерунда, мерзкие, это когда линковать либы нужно в правильном порядке и никак иначе. А пишет он об этом точно также, как и выше.

Кстати, я сильно удивляюсь, почему компиляторы уже мильон раз переписали, омтимизировали, а линкер всё тот же самый, по сути, что и 40 лет назад.
Re[6]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:09
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Здравствуйте, kaa.python, Вы писали:


KP>>Ладно, сколько времени ждать до того как придет понимание что это геморрой?


H>У всех по-разному, видимо. Кому-то видимо и в голову не приходит, что раздувание количества файлов в два раза и правка, например, названия и аргументов функции тоже в двух местах- не нужная трата времени.


Ну ok, пусть какая-нибудь Java и

public interface Moo {
  int run(int);
}
public class Foo implements Moo {
  @Override
  int run(int);
}
а также Foo2, Foo3, Bar2, Bar3...


ты их все меняешь чтобы принимали и возвращали long — это тоже "в двух местах- не нужная трата времени"?

И таки спрошу — IDE с рефакторингом запретили решением ВЦСПС? (Да, я видел ветку, где вы обсуждаете IDE, но мне вывод таки непонятен.)
The God is real, unless declared integer.
Отредактировано 10.02.2022 9:10 netch80 . Предыдущая версия .
Re[10]: Встроенный порядок в C/C++ за счет h-файлов
От: ути-пути Россия  
Дата: 10.02.22 09:12
Оценка: +3
Здравствуйте, Homunculus, Вы писали:

H>Комментарии цветом отфильтровываются мозгом.


Нет уж, или крестик, или штаны. Цвет тебе тоже IDE дает, та самая, которая позволяет рефакторить, разом меняя сигнатуру метода не только в этих 2х файлах, но и во всех других местах, где этот метод используется.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[11]: Встроенный порядок в C/C++ за счет h-файлов
От: Vzhyk2  
Дата: 10.02.22 09:13
Оценка: +1 :)
N>Вот потому их ставят в отдельную секцию и обычно рекомендовано после публичных функций.
В этой части я в какой-то степени с твоим оппонентом согласен. А еще в хидерах шаблоны с имплементацией по сути инлайновые функции...
было бы лучше, если бы при введении этого в С++ попытались бы продумать этот момент.
Например, чего стоят хидер-онли библиотеки. С одной стороны хороши, с другой стороны жуткая жуть.
Но это лажи С++, а не С. С во многих местах сильно продуманнее С++.
Re[3]: Встроенный порядок в C/C++ за счет h-файлов
От: Shtole  
Дата: 10.02.22 09:14
Оценка:
Здравствуйте, netch80, Вы писали:

S>>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.

S>>А при неграмотном — как источник мерзких ошибок линкера.

N>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.


Какой-то у вас еврейский линкер!

Я такого вообще не помню, помню два основных типа: 1) имплементация не найдена; 2) имплементация слишком много найдена.
Do you want to develop an app?
Re[12]: Встроенный порядок в C/C++ за счет h-файлов
От: Homunculus Россия  
Дата: 10.02.22 09:15
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

Из-за этого вынуждены использовать pimpl. Костыль тот еще
Re[4]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:20
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

N>>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.

V>Эт ерунда, мерзкие, это когда линковать либы нужно в правильном порядке и никак иначе. А пишет он об этом точно также, как и выше.

Это далеко не типовой случай и возникает в случае использования всяких платформенных извращений.

V>Кстати, я сильно удивляюсь, почему компиляторы уже мильон раз переписали, омтимизировали, а линкер всё тот же самый, по сути, что и 40 лет назад.


Далеко не такой же, естественно. Современные линкеры умеют, как минимум:
1) Объединять идентичные секции (например, случай генерации кода из шаблонов C++).
2) Обеспечивать динамическую подгрузку модулей (Unix и Windows — сильно по-разному).
3) Генерировать код переходников (для динамических вызовов, переходов, не укладывающихся в "короткие" команды процессора, и т.д.)
4) Отрабатывать приоритеты линковки (из каких источников что брать). Сюда же — отрабатывать области видимости отдельных символов.
5) Выполнять LTO оптимизацию, фактически вызывая рекомпиляцию отдельных частей.

И это я ещё не вспомнил специфику динамического (ран-тайм) линкера.

А с другой стороны, что по-вашему могло измениться при соблюдении рамок задачи "создать пригодное для запуска в машинных кодах"? Почему не сравнить с тем, что происходит в JVM или .NET машине, там ведь по факту исполняется такая же роль линкера, но на более высоком уровне?
The God is real, unless declared integer.
Re[4]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:22
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Здравствуйте, netch80, Вы писали:


S>>>>h-файл при грамотном использовании можно рассматривать как некий контракт системы, краткая сводка что умеет тот или иной модуль без вникания в детали реализации. Ну круто же, что это придумали полвека назад.

S>>>А при неграмотном — как источник мерзких ошибок линкера.

N>>Мерзкие ошибки линкера это сообщение типа _Z3abciv не найден, зато есть _Z3abchv? Ну так это вполне себе нормальная ошибка.


S>Какой-то у вас еврейский линкер!


Это Unix манглинг имён (хотя я наверняка налажал в суффиксах). Windows эквивалент будет выглядеть примерно как ??R?abc?i@i

S>Я такого вообще не помню, помню два основных типа: 1) имплементация не найдена; 2) имплементация слишком много найдена.


Ну так это как раз ошибки, которые очевидно, как править.
The God is real, unless declared integer.
Re[3]: Встроенный порядок в C/C++ за счет h-файлов
От: ути-пути Россия  
Дата: 10.02.22 09:23
Оценка:
Здравствуйте, Shtole, Вы писали:

S>Мне даже в HTML не хватает, когда нужно, допустим, сделать футеры для локального хелпа — без сервера, скриптов, СМС и регистрации.


iframe — это то, что ты хочешь. Он тяжелый, но это вполне логично, если хочешь без СМС и регистрации.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Встроенный порядок в C/C++ за счет h-файлов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.02.22 09:28
Оценка:
Здравствуйте, LaptevVV, Вы писали:

UPDATE: извините, был замучен, криво прочёл. (Там всё немного сложнее, но не к текущей ветке.)
The God is real, unless declared integer.
Отредактировано 11.02.2022 7:53 netch80 . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.