Если у меня попа съела трусы, а потом я их оттуда вытащил, то попа их
Anonymous Poll
56%
Выплюнула
17%
Высрала
27%
Вы в своём уме?
🥴3👍2
— Сегодня небо такое ясное, ночью даже звёзды может быть видно... А, точно, мы же в Питере
— Угу, тут из звёзд даже солнце редко видят
— Угу, тут из звёзд даже солнце редко видят
🔥4👍1🤩1🌚1👀1
Оказывается, hellblade 2 выходит! 🎉🎉🎉
Каким-то образом ничего про неё не слышал чуть не с анонса, а тут такое
Каким-то образом ничего про неё не слышал чуть не с анонса, а тут такое
Очень тяжело
Навспоминал игр, которые хочу опробовать, не могу решить, с какой начать, В таком состоянии уже с час. А это значит, что необходимо доверить свою жизнь незнакомцам в интернете
Навспоминал игр, которые хочу опробовать, не могу решить, с какой начать, В таком состоянии уже с час. А это значит, что необходимо доверить свою жизнь незнакомцам в интернете
С кайфом сходил поорать в караоке, обзор
+ ор в кайф
+ бахнул сакэ
+ нашёл какое-то вкусное рагу с курицей
- голос
+ ор в кайф
+ бахнул сакэ
+ нашёл какое-то вкусное рагу с курицей
- голос
💯5
Идея для любителей экстремального программирования: russian_roulette_ptr<T>
Источник вдохновения — русская рулетка в варианте с одним прокручиванием барабана на всех игроков
Аллоцировав объект, мы сразу удаляем его. Если использовать его сразу после удаления, то велик шанс, что выделенная под него память не переиспользуется, и всё сработает нормально. Но чем дольше им пользуемся, тем выше шанс выстрелить себе в ногу. Развлекайтесь!
template <class T, class... Args>
russian_roulette_ptr<T> make_russian_roulette(Args&&... args) {
auto ptr = new T(std::forward<Args>(args)...);
delete ptr;
return russian_roulette_ptr(ptr);
}
Источник вдохновения — русская рулетка в варианте с одним прокручиванием барабана на всех игроков
Аллоцировав объект, мы сразу удаляем его. Если использовать его сразу после удаления, то велик шанс, что выделенная под него память не переиспользуется, и всё сработает нормально. Но чем дольше им пользуемся, тем выше шанс выстрелить себе в ногу. Развлекайтесь!
🤣9🥰3❤1
Кресты на моей кукухе
Идея для любителей экстремального программирования: russian_roulette_ptr<T> template <class T, class... Args> russian_roulette_ptr<T> make_russian_roulette(Args&&... args) { auto ptr = new T(std::forward<Args>(args)...); delete ptr; return ru…
Подсказывают, что я набаговал в багоделательном коде, и надо delete заменить на free, чтоб деструктор не вызывать
👍2
Странный факт: в плюсах поля обычного базового класса в плюсах лежат перед полями наследника, но поля виртуального базового класса (
Только что открыл это для себя, попал в ступор
Upd. дальнейшие эксперименты говорят, что на деле всё сложнее. Буду выяснять, как так
struct Derived : virtual Base
) лежат правее полей наследникаТолько что открыл это для себя, попал в ступор
Upd. дальнейшие эксперименты говорят, что на деле всё сложнее. Буду выяснять, как так
70к рублей (учитывая накопленные яндекс бонусы, 60к) и можно иметь нума тачку на 72 потока дома...
Как долго я смогу сопротивляться соблазну....
Upd. О, нет, надо бы ещё и корпус какой-никакой
Как долго я смогу сопротивляться соблазну....
Upd. О, нет, надо бы ещё и корпус какой-никакой
🤩1
Так прикольно быть программистом
Стало интересно, сколько я провайдеру за виртуалку отдал. Провайдер может дать историю csv-шкой. И 4 строчки питона находят ответ примерно моментально (30-40к где-то)
Да, я слабый и пытаюсь оправдать свою трату на развлекательную железку
Стало интересно, сколько я провайдеру за виртуалку отдал. Провайдер может дать историю csv-шкой. И 4 строчки питона находят ответ примерно моментально (30-40к где-то)
🤗3👏1
Кресты на моей кукухе
Странный факт: в плюсах поля обычного базового класса в плюсах лежат перед полями наследника, но поля виртуального базового класса (struct Derived : virtual Base) лежат правее полей наследника Только что открыл это для себя, попал в ступор Upd. дальнейшие…
Всё-таки всё просто
Порядок расположения в памяти такой: нормальные родители (в порядке дфс-а), ребёнок, виртуальные родители
Если у класса или родителя есть виртуальные функции, перед ним будет
Занятно, что указатель кладётся не на сам
https://godbolt.org/z/ze36GqhT7
Порядок расположения в памяти такой: нормальные родители (в порядке дфс-а), ребёнок, виртуальные родители
Если у класса или родителя есть виртуальные функции, перед ним будет
vtbl
Занятно, что указатель кладётся не на сам
vtbl
, а куда-то правее. При этом то, что левее записанного указателя, тоже может читаться (в примере там, видимо, лежит смещение влево относительно виртуальной базы)https://godbolt.org/z/ze36GqhT7
godbolt.org
Compiler Explorer - C++ (x86-64 clang (trunk))
struct Base {
long x = 1;
};
struct D1 : virtual Base {
int kek() {
return x;
}
long d1 = 2;
};
struct D2 : virtual Base {
int lol() {
return x;
}
long d2 = 3;
};
struct DA : D1, D2 {
int lmao() {
…
long x = 1;
};
struct D1 : virtual Base {
int kek() {
return x;
}
long d1 = 2;
};
struct D2 : virtual Base {
int lol() {
return x;
}
long d2 = 3;
};
struct DA : D1, D2 {
int lmao() {
…