
Igor
10.09.2018
09:38:37
ну а как ты будешь классифицировать язык, в котором можно tmp, синглтоны, функциональщину с передачей лямбд с замыканиями, volatile переменные, прямой доступ к памяти по адресу, и битовые сдвиги? какой у него уровень абстракции?

Ilia
10.09.2018
09:40:17
Бессмысленно обсуждать красификации. Есть такие, какие есть.

Крис
10.09.2018
09:48:30

Antony
10.09.2018
12:19:40
Немного чёрной магии для любителей трешачка, или каверзных вопросов на собеседованиях:
https://github.com/gcc-mirror/gcc/blob/18d371d3b1d11d64f229a453e390c18493a5d661/gcc/testsuite/g%2B%2B.dg/cpp2a/is-constant-evaluated1.C#L7-L8

Google

Alexander
10.09.2018
12:25:49

Antony
10.09.2018
12:29:10
магия

Dmitry
10.09.2018
12:31:36
Всем привет. Кто может подсказать, в сырцах поменяли один чар например с а на б и заново собрали проект. Потом хекс сравниваем новый и предыдущий бинарь. Наблюдаем что очень многие байты кроме таймстэмпа изменились. Вопрос, может ли это быть дело рук компайлера (в этом случае был Windriver) или дело в чем то другом? Кодогенерации нет, опции компайлера и линкера не меняли.

Spoonson
10.09.2018
12:31:48
тут видимо как загадки про лжеца решать надо - могло быть в первом ответ y? нет, потому что было бы противоречие

Antony
10.09.2018
12:32:39

Aidar
10.09.2018
12:45:24

Ilia
10.09.2018
12:46:17

Matwey
10.09.2018
12:48:21

Dmitry
10.09.2018
12:48:30
Я исхожу из принципа, что билд должен брать determenistic. То есть, в бинарном коде должны быть отражены изменения в исходном коде, пусть и не на что процентов. А так получается что из за одного чара в мегабайтном бинаре треть байт изменена (не смещена)

Kirill
10.09.2018
12:51:41

Dmitry
10.09.2018
12:52:54

Google

Kirill
10.09.2018
12:56:39
Ну как минимум должен был бы поменяться один байт но несколько раз. Или не так?
Нет, например где то по коду есть функция принимающая параметр, чар - количество подходов по циклу и записывает в файл какую то фигню, но N раз.
Мы меняем чар с 1 на 255 который умный компилятор инлайнит на этапе компиляции.
В первом случае компилятор видит for от 0 до 1 и делает loop unrolling. Во втором нет.
В первом случае в бинаре не будет цикл, во втором будет
Это один из миллиона примеров которые могут произойти в проекте от изменения одной переменной
Или в одном случае деление на это число будет использовать деление, во втором компилятор использует битовый сдвиг. И при постановке числа компилятор вообще может подсчитать результат какой нибудь формулы данные которой известны на этапе компиляции. или мы поменяли с 0 на 1, а компилятор теперь знает что теперь такое то условие может выполняться и в какой то if зайдут, значит его нельзя выкидывать

Dmitry
10.09.2018
13:04:30


Kirill
10.09.2018
13:05:40
Если lto включен то, может происходить все что угодно.
Если нет, то естественно , 30% для одного чара звучит странно. НО это опять же, это вероятно.
Любой исход здесь вероятен

Dmitry
10.09.2018
13:08:51

Kirill
10.09.2018
13:25:09
Мы сейчас говорим об абстракциях.
Define true false тоже просто меняет один байт на другой байт.
И насколько сильно изменится собранный бинарь?
Я просто говорю что такое возможно, не обязательно говорю что это ваш случай, скорее всего именно нет, но такое возможно

Ilia
10.09.2018
13:38:24

Dmitry
10.09.2018
13:39:11

Ilia
10.09.2018
13:39:28


Dmitry
10.09.2018
13:41:31

Ilia
10.09.2018
13:42:26
Почему?
Потому что делать его deterministic никому не нужно

Dmitry
10.09.2018
13:43:06

Ilia
10.09.2018
13:43:47

Google

Dmitry
10.09.2018
13:45:23
Но мыть я понял, спасибо за это!

Nevermind
10.09.2018
13:48:32
Может кто-нибудь подсказать литературу для изучения с++?

Aidar
10.09.2018
13:53:26

#Бекмуратов???
10.09.2018
14:12:12
java лучше или c++ для новичков
?

Assasin
10.09.2018
14:21:36
Да будет срач

Roman
10.09.2018
14:21:55

Assasin
10.09.2018
14:22:01
Если серьезно, что интереснее для тебя выглядит, то и лучше

Aidar
10.09.2018
14:22:50

YaOurTea
10.09.2018
14:24:17

Борис
10.09.2018
14:37:55

Daniel
10.09.2018
14:38:04
Да что уж
Го уже скретч

Kirill
10.09.2018
14:38:15
Питооон

Alexander
10.09.2018
14:38:37
так, оффтопик пожалуйста прочь

Kirill
10.09.2018
14:38:39
Но скретч это для шальников начальных классов

Alexander
10.09.2018
14:38:50
в данном чате могут посоветовать только С++
о, а тем, кто не его советовал, сейчас RO выдадим на пару дней

Egor
10.09.2018
14:39:18
+

Google

Daniel
10.09.2018
14:39:43
Начиная писать на с++ вы автоматически снимаете со страуструпа ответственность за повреждения рук и ног

Anton
10.09.2018
14:41:43
Народ, а почему указателю нельзя присвоить никакие численные литералы кроме нуля, но вот такая конструкция вполне себе катит и даже кое-где используется
int *pInt = (int*)0xabcd;
Т.е. в чём была проблема сделать возможным неявный каст инта в тип указателя?

Сиие
10.09.2018
14:44:02

Serg
10.09.2018
14:44:05

Anton
10.09.2018
14:44:58
?

Сиие
10.09.2018
14:45:28
#define SRAM_ADDR_CS0 0xE0000000
addr = (uint16_t *)(SRAM_ADDR_CS0 | 0x800 );

Anton
10.09.2018
14:45:37

Сиие
10.09.2018
14:49:09

Anton
10.09.2018
14:49:26
Какой компилятор?

Max
10.09.2018
14:49:40

Сиие
10.09.2018
14:52:25

Anton
10.09.2018
14:52:53
Да, это вопрос флага

[Anonymous]
10.09.2018
15:15:50
жаль

Aidar
10.09.2018
15:17:41

Arseny
10.09.2018
15:24:42

Alexander
10.09.2018
15:25:38
Видать про @MasterZiv не слышал про воспроизводимость билдов ? и про то, какие усилия тратятся на это

Ilia
10.09.2018
15:31:21

Google

Ilia
10.09.2018
15:31:52

Aidar
10.09.2018
15:33:00
Соре сарказмом в другом чатике заразился

Ilia
10.09.2018
15:59:12

Dmitry
10.09.2018
16:00:36
Народ разъясните кто-нить один момент. Допустим есть у нас темплейтный класс, и есть у него нетемплейтный метод с какой-то дефолтной реализацией. Все объявлено в ашнике. В другом ашнике у меня алиас на конкретную реализацию этого темплейта. И мне хочется переопределить тот метод для этой конкретной реализации (через специализацию класса). Если этот метод переопределять в ашнике - все работает, только надо добавить инлайн. Правда в этом случае метод компилится мириад раз. Я пробовал переопределять этот метод в цппшнике, но вот только эту реализацию не видит другой код - работает дефолтной реализация из темплейта. Почему вариант с цппшнике не работает?

Max
10.09.2018
16:02:14