- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
#define key \
keySequence.keys[i]
#define read_helper(val_) \
file.read( \
reinterpret_cast<char*>(&key.val_), \
sizeof(decltype(key.val_)) \
)
for (DWORD i = 0; i < keyPointer.Count; i++)
read_helper(RotationQuaternion);
for (DWORD i = 0; i < keyPointer.Count; i++)
read_helper(TimeValue);
for (DWORD i = 0; i < keyPointer.Count; i++)
read_helper(PositionValue),
key.SwapBytes();
#undef read_helper
#undef key
LispGovno 31.05.2016 21:18 # +3
Antervis 01.06.2016 05:44 # 0
п.с. подаешь на вход макроса референс на большой объект и жрешь то самое...
Dummy00001 01.06.2016 11:23 # +1
LispGovno 31.05.2016 21:19 # 0
bormand 31.05.2016 21:26 # 0
Да, и правда страшно.
LispGovno 31.05.2016 22:04 # +3
guest 31.05.2016 22:19 # +1
Кстати говоря даже в жабке мне иногда жаль что макросов нет
bormand 31.05.2016 22:20 # +1
?
guest 31.05.2016 22:22 # 0
ну например хочу такое
bormand 31.05.2016 22:36 # +1
guest 31.05.2016 22:38 # 0
bormand 31.05.2016 22:44 # +1
Ну либо вообще в конфиг вынесешь, и не будешь ебать мозг с двумя сборками... JIT вроде обращение к static final оптимизирует даже если они из конфига были прочитаны.
guest 31.05.2016 22:50 # 0
Сишкобляди опять соснули со своими дефайнами.
guest 31.05.2016 22:57 # 0
и размер будет меньше
guest 31.05.2016 22:55 # +2
Я не могу вынести в конфиг, я не знаю как мой класс будет использоваться)
Правильный ответ -- завяжись на System.getProperties или env vars или JNDI (если ёбнутый ентерпрайзник времен JavaEE 6). Но всё это говено.
Проше было бы делать make debug и make release, правда?
вот в C# есть preprocessor (вообще в c# есть всё, как в Одессе) и никто не страдает
bormand 31.05.2016 22:58 # +1
guestinho 31.05.2016 23:01 # +1
https://msdn.microsoft.com/en-us/library/ed8yd1ha.aspx
А еще там есть атрибут [Conditional("DEBUG")] чтобы добавлять метод только при дебаге
Как всегда в шарпике есть 150 способов сделать одно и тоже, в зависимости от твоего бекграунда (ну как там были ~ и finalize итд)
kegdan 01.06.2016 08:19 # +2
Даже не так - препроцессора нет, а директивы препроцессора есть
guestinho 02.06.2016 15:59 # 0
разве он не перед компиляцией работает?
bormand 31.05.2016 23:01 # 0
Короче только ифы и дефайн совсем кастрированный
guestinho 31.05.2016 23:02 # +1
это как с генериками: генерики вроде есть, но до крестовых шаблонов им далеко
bormand 31.05.2016 23:07 # 0
guestinho 31.05.2016 23:17 # 0
Очевидно что в тестовой версии я это хочу, а в продакшене -- нет
зы: в жабе естати есть assert, который как-бы включается через -ea.
но есть проблема: Долбоёбы написали assert doSomethingUseful(), и теперь нельзя запускаться без -ea, потому что useful не сделается
guestinho 31.05.2016 23:23 # +1
"всё такое вкусное, что же выбрать?"
http://stackoverflow.com/questions/3788605/if-debug-vs-conditionaldebug
LispGovno 31.05.2016 23:09 # 0
не налабаешь:
bormand 31.05.2016 23:10 # 0
guestinho 31.05.2016 23:18 # 0
kegdan 01.06.2016 08:43 # 0
guestinho 31.05.2016 23:19 # 0
скучный какой си с решоточкой
никакой магии
Soul_re@ver 31.05.2016 23:56 # 0
Antervis 01.06.2016 05:48 # 0
LispGovno 01.06.2016 06:01 # 0
Antervis 01.06.2016 07:04 # 0
LispGovno 01.06.2016 10:07 # 0
Antervis 01.06.2016 11:09 # 0
roman-kashitsyn 01.06.2016 11:50 # +3
А где в коде sizeof(T&) ? Компилятор сопоставит с образцом, отпилит референс и в T положит реальный тип. Референсов на референс не бывает (бывает референс на указатель), поэтому тут всё ок.
LispGovno 01.06.2016 23:02 # +2
kegdan 01.06.2016 08:18 # 0
guestinho 02.06.2016 16:01 # 0
3.14159265 02.06.2016 21:23 # 0
...
}
https://www.google.com/search?q=if+(log.isDebugEnabled(
kegdan 01.06.2016 08:16 # +1
LispGovno 31.05.2016 21:21 # +3
bormand 31.05.2016 22:15 # 0
bormand 31.05.2016 22:20 # +1
А нахер этой структуре SwapBytes? Как бы сериализатор должен свапать байты, а не сама структура...
kipar 01.06.2016 09:50 # 0
LispGovno 01.06.2016 10:10 # +1
kegdan 01.06.2016 10:32 # +2
kipar 01.06.2016 11:21 # 0
Вот тот кто макросы предложил да, не в себе. Я подозреваю что он пьян.
LispGovno 01.06.2016 23:04 # 0
bormand 01.06.2016 23:17 # 0
bormand 01.06.2016 19:31 # 0
> расковыривает
Ок, десериализатор.
roman-kashitsyn 01.06.2016 09:58 # +5
Обратите внимание на запятую в конце второй строки. Я сначала подумал, что тут питоноошибка, но нет, мы просто не любим фигурные скобки!
kegdan 01.06.2016 10:35 # 0
Определитесь уже - вы змея или верблюд?
roman-kashitsyn 01.06.2016 11:38 # +1
kegdan 01.06.2016 11:39 # 0
3_14dar 02.06.2016 01:32 # 0
guesto 02.06.2016 02:48 # 0
kegdan 02.06.2016 05:21 # +2
guesto 02.06.2016 02:49 # 0
как тебе класс list?
3_14dar 02.06.2016 02:52 # 0
inkanus-gray 02.06.2016 13:38 # 0
Значит, ты на типы и классы зачем-то делишь, т. е. занимаешься искусственной хуйнёй.
roman-kashitsyn 02.06.2016 14:25 # +3
Вообще говоря, как и следовало ожидать, это утверждение неверно.
Вот видите, какой простой и консистентный язык?
Я в своём утверждении имел в виду типы, определяемые пользователем, т.е. классы.
guestinho 02.06.2016 14:30 # +2
На самом деле нужно мыслить в терминах abstract data types.и не выебываться
roman-kashitsyn 02.06.2016 14:35 # +4
Если говорить конкретно о Python, то там своя атмосфера и свои определения "типа" и "класса", которые исторически сложились и имеют мало общего со здравым смыслом.
guestinho 02.06.2016 15:16 # 0
А какое определение у класса в пайтоне кстати?
Чем int не класс если можно сделать так
wvxvw 02.06.2016 15:31 # −3
Типы - логические выражения вида T, T -> T', T x T' из теории типов.
Т.е. они вообще друг на друга похожи примерно никак.
Например, у функции на Питоне:
def foo(bar): return baz
тип typeof(bar)->typeof(baz) но это можно отнести к разным классам - смотря как поделить и какое множество. Например, если множество: все функции, то этот класс описывает функции с одним аргументом.
guestinho 02.06.2016 15:43 # +5
А еще классы это такие комнаты, в которых сидят школьники.
Что общего между комнатами и подмножествами?
Ни те ни другие не имеют никакого отношения к классам в ООП.
Как и следовало ожидать, wvxvw увеличил количество ненужных букв в Интернете.
inkanus-gray 02.06.2016 15:48 # +2
wvxvw 02.06.2016 16:28 # +1
inkanus-gray 02.06.2016 16:59 # 0
По аналогии мы можем сказать, что int — это class of integers, а number — это offspring/object/instance. Но мы не называем int классом только потому, что в языке с ним не связано ключевое слово “class”.
wvxvw 02.06.2016 17:38 # 0
В современных языках снова понятие типа расширяется всяким вне-логическими свойствами, типа "владение" в Расте, но это по прежнему называют типом.
roman-kashitsyn 02.06.2016 17:03 # +2
Да ладно, он тупо с симулы скопипастил.
inkanus-gray 02.06.2016 17:08 # 0
Взглянул на синтаксис Симулы: begin...end, как в Паскале, но при этом тип перед переменной, как в Си. Да это же Алгол с классами!
kegdan 02.06.2016 19:27 # +1
"Я придумал термин «объектно-ориентированный», и вот что я вам скажу, я не имел ввиду С++."
wvxvw 02.06.2016 15:49 # −3
gost 01.06.2016 10:34 # +8
> #undef key
Насрал и прикрыл газеткой.