
Igor
29.06.2018
09:57:26

Anatoly
29.06.2018
09:58:39

Ilia
29.06.2018
10:11:10

Anatoly
29.06.2018
10:11:57

Google

Ilia
29.06.2018
10:12:29
Нет, но я за правду...

Anatoly
29.06.2018
10:17:38
Нет, но я за правду...
ну, твоя правда не соответсвует действительности, во всяком случае у меня нет возможности проверить выбрасывал ли VC5 предупреждение, хотя в файловом архиве валяется эта студия.

Mikhail Voronov
29.06.2018
10:18:58

Ilia
29.06.2018
10:25:17

Mikhail Voronov
29.06.2018
10:27:30

Ilia
29.06.2018
10:32:16
Ты на вопрос не ответил.

Anatoly
29.06.2018
10:34:45

Mikhail Voronov
29.06.2018
10:34:53
я посчитал, что он не требует ответа). На уровне MyClass ожидаю один

Ilia
29.06.2018
10:50:44

Vhäldemar
29.06.2018
10:53:06

Ilia
29.06.2018
10:53:32

Google

Mikhail Voronov
29.06.2018
10:54:27

Vhäldemar
29.06.2018
10:55:03
честно, ну вот я наверно ненастоящий сварщик, но профита от множественного наследования за свою довольно долгую карьеру никак не видел.
да-да, именно они, телепузики с гномиками из дотнетика и прочие mainstream-loosers

Ilia
29.06.2018
10:56:51

Mikhail Voronov
29.06.2018
10:57:47

Ilia
29.06.2018
11:00:39
На самом деле в С++ большая проблема в том, что если ты начал писать иерархию с линейным наследованием, её потом будет сложно переделывать в множественное, и наоборот.
Т.е. как бы нарушается свобода в использовании классов.
Страустрап немного это порешал, попытался, но полагаю что полной свободы не достигнуто.
И большой вопрос, может ли эта свобода вообще быть...

Mikhail Voronov
29.06.2018
11:02:56


Ilia
29.06.2018
11:30:47
Я о логике говорил только. О семантике объектной модели при MI.
Оверхед -- это фигня, ты бы знал, какой оверхед скажем в LISP при множественной диспетчеризации методов, и нифига, терпят...
Оверхэд может рассматриваться ПОСЛЕ того, как предложена одна или другая семантическая модель объектной системы.
Можно рассмотреть их возможные реализации и возможный оверхэд...
Но это не интересно, если тебе базовая семантическая модель не подходит.
Грубо говоря, если ты хочешь constexpr в compiletime, ты же не думаешь об оверхеде компилятора ?
Нет. Ты просто хочешь и все.
К тому же, когда Страус делал MI, там не проблемы оверхеда решающими были...


Mikhail Voronov
29.06.2018
11:57:02
Очевидно, когда используется Lisp, Java, C#, то нужно быть готовым к оверхеду большему, чем у плюсов или ассемблера, а в случае C++ не хочется платить за неиспользуемое. И про преждевременную оптимизацию тоже уже много раз обсуждалось. Но постоянное виртуальное наследование, имхо, не совсем вопрос tradeoff, т.к., во-первых, оно редко используется (нормально же живут люди в C#/Java), во-вторых, при множественном наследовании в C++ нужно чётко понимать, что ты делаешь и на что это влияет.

Vhäldemar
29.06.2018
11:57:03
лисп давно себя позиционирует как язык с минимальным оверхедом и исповедует принцип "не используешь - на платишь"?
а то можно и ЖС привести как пример, чо

Anatoly
29.06.2018
11:58:01
Я о логике говорил только. О семантике объектной модели при MI.
Оверхед -- это фигня, ты бы знал, какой оверхед скажем в LISP при множественной диспетчеризации методов, и нифига, терпят...
Оверхэд может рассматриваться ПОСЛЕ того, как предложена одна или другая семантическая модель объектной системы.
Можно рассмотреть их возможные реализации и возможный оверхэд...
Но это не интересно, если тебе базовая семантическая модель не подходит.
Грубо говоря, если ты хочешь constexpr в compiletime, ты же не думаешь об оверхеде компилятора ?
Нет. Ты просто хочешь и все.
К тому же, когда Страус делал MI, там не проблемы оверхеда решающими были...
Ильюхо, я благодарен тебе, что не ты был автором C++


Vhäldemar
29.06.2018
11:58:35
Очевидно, когда используется Lisp, Java, C#, то нужно быть готовым к оверхеду большему, чем у плюсов или ассемблера, а в случае C++ не хочется платить за неиспользуемое. И про преждевременную оптимизацию тоже уже много раз обсуждалось. Но постоянное виртуальное наследование, имхо, не совсем вопрос tradeoff, т.к., во-первых, оно редко используется (нормально же живут люди в C#/Java), во-вторых, при множественном наследовании в C++ нужно чётко понимать, что ты делаешь и на что это влияет.
бэд дизайн СТЛ вот использует же

yuri
29.06.2018
11:58:47
Да нет, все верно. Я очень долгое время думал, что ОпенОффис на яве написан, именно из-за таких вещей.

Юра Незнанов
29.06.2018
12:33:18

Alexander
29.06.2018
12:50:45
Пока хлеб не отняли - https://bincrafters.github.io/2018/06/28/OSS-vs-Enterprise-Dependency-Management/

Ilia
29.06.2018
13:09:56
Это статья? Ты накрапал?

Alexander
29.06.2018
13:12:22

Igor
29.06.2018
13:31:21
union AudioCodecProfile {
struct {
unsigned int channels : 8;
unsigned int frame_size : 24;
unsigned int sample_rate : 16;
unsigned int extradata_size : 16;
} s;
uint64_t u64;
};
AudioCodecProfile p = {0};
кланговский анализатор предупреждает что missing field 'frame_size' initializer
это получается {0} здесь кастуется на внутреннюю структуру, а не на весь объект?

Google

Max
29.06.2018
13:33:39
https://en.cppreference.com/w/c/language/struct_initialization

Igor
29.06.2018
13:35:00
ох
и впрямь, забыл что оно только на массивах себя ведёт как memset

Anatoly
29.06.2018
13:38:32

Igor
29.06.2018
13:39:06

Anatoly
29.06.2018
13:40:19

Max
29.06.2018
13:41:38
хотя тут говорят иначе... https://stackoverflow.com/questions/1538943/why-is-the-compiler-throwing-this-warning-missing-initializer-isnt-the-stru

Igor
29.06.2018
13:42:24

Chiveson
29.06.2018
13:43:57
не по теме, может сталкивался кто,
Как получить физический серийный номер процессора без dmidecod и cpuid, из /sys? если без рута, то вообще огонь

Anton
29.06.2018
13:50:56
"In all cases, if the empty pair of braces {} is used and T is an aggregate type, aggregate-initialization is performed instead of value-initialization. "

Anatoly
29.06.2018
13:52:49

Anatoly
29.06.2018
13:53:33
и частный случай value initialization - aggregate-initialization.
Anton или вы не согласны с тем, что мемберы юниона при этом не будут zero инициализированы?

Anton
29.06.2018
14:05:00

Anatoly
29.06.2018
14:05:41

Anton
29.06.2018
14:12:43
ну, а терминологически вы абсолютно правы, хотя агрегатная частный случай для value initialization
Короче хронология такая:
Имеем выражение вида AudioCodecProfile p{};
Для объекта p это будет означать агрегатную инициализацию, т.к. AudioCodecProfile - агрегатный тип
В свою очередь, из за того, что initializer list в данном случае пуст, для всех полей типа AudioCodecProfile вызовется value-initialization. А т.к. все поля у него - простые типы, для всех вызовется zero-initialisation, в результате которого они обнулятся
Как то так))

Anatoly
29.06.2018
14:16:23

Admin
ERROR: S client not available

Google

Anatoly
29.06.2018
14:16:57
наш случай (8.4)

Побитый
29.06.2018
14:18:31

Anatoly
29.06.2018
14:18:40

Anton
29.06.2018
14:18:57
наш случай (8.4)
Ну, в моём сообщении это последний этап) Просто если бы было выражение вида AudioCodeProfile p{0}, то это была бы уже copy-initialization

Побитый
29.06.2018
14:19:01
драфт
Ты в интернете его так смотришь? Или у тебя офлайн версия?

Anatoly
29.06.2018
14:19:16

Побитый
29.06.2018
14:20:01
оффлайн
А через какую программу? ?
У меня на винде в SumatraPDF крашится при поиске слова...

Anatoly
29.06.2018
14:20:19

Anton
29.06.2018
14:20:52
На самом деле без документации нереально точно на такие вопросы отвечать)
Хренова куча этих инициализаций и случаев, в которых каждая из них вызывается)

Anatoly
29.06.2018
14:23:29

Igor
29.06.2018
14:27:05

Побитый
29.06.2018
14:30:43

Alexander Alprog
29.06.2018
17:40:34
спасибо за полгон

Stanislav
29.06.2018
19:14:55
не знаете есть ли либы под c++ для генерации фейковых данных? https://github.com/ffaker/ffaker типа такого (оно для руби)

Anatoly
29.06.2018
19:19:41

Stanislav
29.06.2018
19:20:01
но хотелось бы либу оффлайн)

Kitsu
29.06.2018
19:21:37

Stanislav
29.06.2018
19:23:19

Google

Stanislav
29.06.2018
19:24:00
надо тестить удаленный софт, и просто генерить в некоторых местах данные

Anatoly
29.06.2018
19:26:55

Kitsu
29.06.2018
19:27:23

Stanislav
29.06.2018
19:29:54
ээ, фаззеры?
и как мне фазер заюзать для генерации протокола нужного?

Kitsu
29.06.2018
19:30:28

Vhäldemar
29.06.2018
20:39:32
что значит нужного протокола?