
Dumitru
21.11.2016
21:04:43
*молодежь

Vladislav
21.11.2016
21:04:59

Dumitru
21.11.2016
21:05:22

Google

Tony
21.11.2016
21:05:37

Artem
21.11.2016
21:05:41
Ну может. На вмк тоска, на физтехе немногим лучше кажется, в вышке я хз, к нам приходят студенты, которые совсем ничего не знают

Vladislav
21.11.2016
21:05:46

Dumitru
21.11.2016
21:06:35
сейчас я не сплю, 6 утра

Vladislav
21.11.2016
21:06:58

Dumitru
21.11.2016
21:06:58
пришлось ехать в Китай)
неее)

Detur
21.11.2016
21:07:17

Vladislav
21.11.2016
21:07:34

Dumitru
21.11.2016
21:07:52
они придумали свои, кажется в 16 веке ввели новую письменность так как использовали китайские, а они сложные и не все могли себе позволить такое образование
вообще можно выучить весь корейский алфавит за 1 день

Google

Detur
21.11.2016
21:08:15
тоже себе сменщика хочу

Square
21.11.2016
21:08:25
От дальнего востока до калифорнии...
у меня ещё был в одном чате знакомый из Блумберг, но щя пропал как то в телеге

Vladislav
21.11.2016
21:09:47

Dumitru
21.11.2016
21:10:26

Михаил
22.11.2016
06:06:22
А не подскажете, что использовать вместо char data[0] в структуре? Чтобы и работало так же, и компилятор не выдавал предупреждение.

Vladislav
22.11.2016
06:06:52

Михаил
22.11.2016
06:11:04
Нулевой размер указывается для получения размера структуры в sizeof(). Через malloc() выделяется буфер под структуру и под нужное количество данных. char data используется как указатель на начало данных.

Alex Фэils?︙
22.11.2016
06:11:09

Vladislav
22.11.2016
06:12:02
нужный размер только в runtime известен?
если нет, лучше сделать шаблонную структуру
типа template <int size> struct {..., char data[size]; }

babysitter
22.11.2016
06:15:19
data[1] в винде вроде повсеместно
о, нагуглилось довольно бытро
https://blogs.msdn.microsoft.com/oldnewthing/20040826-00/?p=38043

Михаил
22.11.2016
06:26:59
Блин, или идеальный вариант data[0] и предупреждение, или костыль FIELD_OFFSET, и все нормально.

Vladislav
22.11.2016
06:27:55

Alex Фэils?︙
22.11.2016
06:29:18

Михаил
22.11.2016
06:29:22
Вектор тут точно не нужен, тащить лишний код.

Vladislav
22.11.2016
06:30:41
а грязные хаки нужны?

Михаил
22.11.2016
06:34:24
Так чистых нет.

Google

babysitter
22.11.2016
06:34:47
для системного программирования понятие хаков немного сглаживается :D
например я не уверен, что программируя под винапи люди всегда используют с++ style касты, хотя это нехорошо. сишники вообще мастера костылей, конкретно это решение вполне узаконено, почему бы и нет

Vladislav
22.11.2016
06:35:00
можно подробнее про use-case?

babysitter
22.11.2016
06:35:44
data[1]
ноль не нужен

Alex Фэils?︙
22.11.2016
06:36:19
0 нестандартный ext. В винде вроде бы не собирается

Vladislav
22.11.2016
06:39:12
к слову, даже в C это UB: http://stackoverflow.com/a/3711287/457227

babysitter
22.11.2016
06:47:12
good to know

Square
22.11.2016
08:59:02

Михаил
22.11.2016
08:59:04
Как привести один тип к другому? class C{ A a; B b; } Есть B *b, как получить C? C *c = b; не работает. Пока только вариант руками сдвинуть указатель на -sizeof(A);

Andrey
22.11.2016
09:00:07

Denis
22.11.2016
09:01:36

Дед Пегас
22.11.2016
09:01:44
Правда, решение так себе. Как и задача. ._.
._.

Andrey
22.11.2016
09:02:07

Михаил
22.11.2016
09:20:21
Вспомнил, что приведение работает через наследование, но у меня базовый тип int и от него наследовать не получается.

Дед Пегас
22.11.2016
09:22:54
Базовый тип — int,
Это как?

Andrey
22.11.2016
09:24:55

Google

Михаил
22.11.2016
09:25:03
В class C{ A a; B b; } B - int. И перестроить структуру в class C : public A, public B{}; не получается.

Дед Пегас
22.11.2016
09:25:18

Alex Фэils?︙
22.11.2016
09:25:31
template <typename T>
class MyT : T {};
MyT<int> myInt;

Дед Пегас
22.11.2016
09:25:47

Михаил
22.11.2016
09:27:29
У меня винда, этим все сказано: Ошибка error C2516: T: не является допустимым базовым классом.

Kirill
22.11.2016
09:31:06
Сегодня день извращений в чате? ?

Andrey
22.11.2016
09:31:57

Admin
ERROR: S client not available

Дед Пегас
22.11.2016
09:33:20
Кстати, про извращения.
Где там Толик...

Михаил
22.11.2016
09:34:10
Местная знаменитость?

Дед Пегас
22.11.2016
09:36:13
Нет.

babysitter
22.11.2016
09:38:40
reinterpret_cast же для такой грязи и придумали, зачем упираться? так-то можно и си-стайл каст нарисовать, если не одобряешь. наследование здесь даже больший костыль, чем очевидное решение

Stanislav
22.11.2016
09:39:17
нужно больше охренительных советов

Denis
22.11.2016
09:40:01
Ору Вголос просто)

Andrey
22.11.2016
09:40:23

babysitter
22.11.2016
09:40:26
а, я еще и не понял задачу похоже

Kirill
22.11.2016
09:42:24

Denis
22.11.2016
09:43:22
Смотри, а попробуй через смещение на поле)
&C::a

babysitter
22.11.2016
09:44:11
offset_of

Google

Михаил
22.11.2016
09:48:32
Обычный каст и смещение вполне сойдут для сельской местности, работает и ок.
У меня дальше планы на указатели с захватом и блокировкой объекта, вот где можно развернуться.

babysitter
22.11.2016
09:50:30
int* b_ptr = &c.b;
C* c2 = (C*)((char*)b_ptr - offsetof(C, b));

Kirill
22.11.2016
09:50:57
Надеюсь, этот код никому не придется поддерживать.

Alex Фэils?︙
22.11.2016
09:51:29

Stanislav
22.11.2016
09:51:34

babysitter
22.11.2016
09:52:13

Kirill
22.11.2016
09:52:58
Жесть
А ведь наверняка все из-за того, что архитектура неправильная.
Или в голове каша.

Andrey
22.11.2016
09:54:33
иначе это все ад )

Kirill
22.11.2016
09:55:20
и может там тонна легаси кода и сквозь миллионы уровней бизнес логики проходит этот указатель на инт ,и вот так извратиться это единственный выход
мы же не знаем всей предыстории)

Kirill
22.11.2016
09:55:46
Не в обиду человеку, но я не удивлюсь, если это окажется в каком-то рабочем проекте.

babysitter
22.11.2016
09:56:04
обернуть класс инта во что-нибудь и хранить указатель на owner'а!

Alex Фэils?︙
22.11.2016
09:56:14

babysitter
22.11.2016
09:56:20
ну и ладно