- 1
value = *((const char*)(*it).second.value);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+7
value = *((const char*)(*it).second.value);
void* -> const char* -> char
j123123 04.08.2016 07:28 # +16
Antervis 04.08.2016 07:35 # +17
Возможно можно было вместо (*it). написать it-> Иначе хз в чем именно гк
bormand 04.08.2016 21:03 # +16
В потенциальном UB'е, например. Вдруг в it->second.value был нулл или слишком короткий буфер. Я бы въебал как минимум ассёрт.
Soul_re@ver 04.08.2016 21:10 # +17
Я бы просто въебал. Нехуй void* использовать. По крайней мере можно было выделить эту хуйню в функцию.
bormand 04.08.2016 21:12 # +15
Ну, по-хорошему, это должно быть в акцессоре у того, у чего брали value (а само value - в привате)...
Soul_re@ver 04.08.2016 21:28 # +16
bormand 04.08.2016 21:19 # +19
А на крестах я сегодня ведь день проебал чтобы скрестить ужа с ежом - чтобы и память лишний раз не аллоцировало, и исключения не кидало (но ошибки не теряло), и кишки сишной реализации наружу не торчали, и типобезопасно было, и все типичные юзкейсы няшно и кратко смотрелись...
В итоге закончилось всё void* в единственном приватном поле у всех публичных классов этого модуля ;(
Soul_re@ver 04.08.2016 21:27 # +16
> Кресты - говно
Удивил. Всё говно, кроме говна — оно ценное удобрение. Но не всё. Некоторое говно — говно.
bormand 04.08.2016 21:39 # +16
чтобы и память лишний раз не аллоцировало
Там void* не потому что много разных вариантов, а потому что структуру в хедере палить нельзя (она сишная, т.е. попадёт в корневой неймспейс). А саму структуру в any сунуть тоже нельзя, т.к. класс не должен контролировать её время жизни (чё-то типа итератора)...
Soul_re@ver 04.08.2016 21:48 # +16
А не хочется палить даже имя структуры? Потому что для объявления указателя достаточно объявления struct kokoko;
bormand 04.08.2016 21:58 # +16
guest 04.08.2016 23:24 # +16
inkanus-gray 04.08.2016 23:48 # +18
bormand 05.08.2016 18:28 # +16
А вдруг * перегружена? Ну а вдруг?
З.Ы. Их как бы парочкой обычно и перегружают.
kurwa 05.08.2016 21:22 # +16
bormand 05.08.2016 21:23 # +16
kurwa 05.08.2016 21:24 # +16
kegdan 06.08.2016 04:12 # +16
bormand 06.08.2016 08:06 # +17
kegdan 06.08.2016 08:28 # +16
kurwa 06.08.2016 10:50 # +17