- 1
- 2
- 3
- 4
- 5
- 6
- 7
#include <vector>
template <typename T>
void FreeAll( T & t ) {
T tmp;
t.swap( tmp );
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
#include <vector>
template <typename T>
void FreeAll( T & t ) {
T tmp;
t.swap( tmp );
}
https://youtu.be/OxISmIlNKsM?t=29s
А я вовсе не колдунья,
Я любила и люблю!
Это мне судьба послала
Грешную любовь мою!
https://youtu.be/abExstWhg-w
https://www.youtube.com/watch?v=1I8CNINZSGU
https://youtu.be/xkkyR-LJJaw
https://www.youtube.com/watch?v=I53HDr0-Qew
Просто клевый клип
https://youtu.be/CXB13vxXSMg
И бонусом ещё один:
https://youtu.be/lY9A816bPCI
https://youtu.be/jXeValS-RMM
Holding you, holding you, it's in you, river flows in you.
Slow it down, slow it down, that river flows inside me too.
Holding you, holding you, it's in you, river flows in you.
Waiting now, waiting now, just be strong, you will make it through.
Though we are weak we understand.
It's time to heed the water's call.
No rock could stand the waterfall.
https://youtu.be/aNOXuj3eErM
Только пидару не показывайте.
Life is a waterfall !
we're one in the river
and one again after the fall !
Всё время спешить неизвестно куда?
Достаточно знать, что нужно бежать —
На это она и вода.
https://youtu.be/xXBPO8fHs2k
и в догонку
https://www.youtube.com/watch?v=pKTUbjN1B5g
https://youtu.be/CcxtLJHuV9Q
https://www.youtube.com/watch?v=NIy7bTMJ75M
Я на улице одна.
https://youtu.be/46xO8Nx6ZXI
тащемта, чат кутежа
Паук крайне подозрителен. Видимо уже дунул и дернул
https://youtu.be/KD4zTi0D460
Но ведь в жизни солдаты мы,
И уже на пределах ума
Содрогаются атомы,
Белым вихрем взметая дома...
кот на 1:54 шикарен
У вектора capacity только так срезать можно. И function только так можно почистить...
2016 год на дворе.
Вот вам от меня:
Явно ID, но в моем случае работало. Всем няшек и бобра!
shrink_to_fit, как уже было сказано, может предложить лизнуть тунца: "It depends on the implementation if the request is fulfilled.".
а reserve(0) уж точно предложит вкусить лососца: "If new_cap is greater than the current capacity(), new storage is allocated, otherwise the method does nothing."
Компилятор вправе превратить свап с временной переменной в "вызвать деструкторы для всех элементов, не делать больше ничего" если всё заинлайнится. Так что лизнуть тунца можно в любом случае.
короче, серебряная пуля:
Даже серебрянная пуля не поможет. Хотя она и не соберётся, так как swap с волатильными векторами не работает.
> не делать больше ничего
Погодите, а из этого не следует, что компилятор может официально сгенерировать программу, в которой память будет безбожно течь? Скажем, вообще все освобождения выпилить, только код деструкторов оставить.
Оптимизировать выделение памяти компиляторы умели давно ( http://goo.gl/RZ2FVt , советую посмотреть, что делает гцц4.8), просто в новом стандарте разрешили при этом игнорировать побочные эффекты, чтобы всякие логирующие аллокаторы не ломали оптимизацию.
Я ассемблерные штуки почти не знаю, но это же питушня какая-то. Насколько я понял, компилятор из тормозного кода с доступом в потенциально чужую память сделал быстрокод с закэшированным результатом. И если добавить main, который печатает foo(1), внутри сразу распечатается 55 без вызова всяких там функций.
Но если добавить if(ip == NULL) return 0; после malloc, то malloc будет вызываться всегда только ради проверки наличия памяти и foo не заинлайнится:
Зачем? Вызов ненастоящего malloc'а всегда успешен... Значит проверку на нулл можно с чистой совестью выкинуть.
Так и поехать можно.
Его "ненастоящность" как-то зафиксирована? (макросы/стандарт/директивы) Или человек компилирует в GCC x.x.x, видит, что соптимизировалось и добавляет комментарий
Компилятором. Он же видит, что можно вызов настоящего malloc заменить на ненастоящий. Затем замечает, что ненастоящий malloc всегда успешен и выкидывает проверку.
Кстати, шланг оптимизирует даже с проверками.
и он выделяет ненастоящую память?
Ты будешь в неплохой компании: с wvxvw и Тарасом.