Веб-версияОткрыть в Telegram
ППостироничные идеи для ебаного C++

Постироничные идеи для ебаного C++

@postironic_cpp · канал · Технологии · в индексе с 2026-08-26
556подписчиков
455средний охват поста
1постов за 30 дней
160постов в индексе
I
Ivan Sokolov
Иногда программе становится так хорошо, что хочется запечатлеть core dump. Умирать при этом ни к чему, как бы хорошо ни было. Извне обычно есть gcore и вообще gdb, а что же изнутри? Всё ещё проще: if (int pid = fork()) { waitpid(pid, nullptr, 0); } else { std::abort(); } Упражнения по синтезу персистентных структур данных или неблокирующей сериализации слепков симуляции остаются на дом.
7 · 2.3K ·
G
greg
Реализация суффиксного автомата остается в качестве упражнения. struct bt {   bt* left = nullptr;   bt* right = nullptr;   bt* go(auto... dir) { return (this->*...->*dir); } }; #include <cassert> int main() {   bt leaf[4],      inner1(&leaf[0], &leaf[1]),      inner2(&leaf[2], &inner1),      root(&leaf[3], &inner2);   assert(&leaf[0] == root.go(     &bt::right,     &bt::right,     &bt::left)); }
7 · 2.4K ·
G
greg
Фотография
нажмите — покажем
За отсутствие постов предъявить админам можно будет завтра на C++ Zero Cost Conf в Москве.
10 · 2.4K ·
I
Ivan Sokolov
Оказывается, в C++26 наконец-то будет удобный синтаксис для создания REST-контроллеров. response add(widget) post("/widgets");
2 · 2.5K ·
G
greg
Фотография
нажмите — покажем
Фотография
нажмите — покажем
Фотография
нажмите — покажем
enum to string в наши дни. дикий enum to string
57 · 6.4K ·
G
greg
Мне лень тебе тапл накладывать на цпп и придумывать примеры. ты явно стишком серьёзный для таких дел. Напиши что-то типа таккой рекурсивной чуши: auto tuple = [](this auto tuple, auto ... xs) { return [=](auto f) { return tuple(f(xs)...); }; }; int main() { auto id = [](auto x) { return x; }; auto add = [](auto x) { return [=](auto y) { return x + y; }; }; auto print = [](auto x) { std::print("{}", x); return x; }; tuple(10, 20)(id)(print)(add(10))(print); } Сделал максимально по фпешному. Конечно язык не такой убогий мусор, но как смог
11 · 3.1K ·
greg
Мы долго не выпускали новые авторские посты, потому что готовили proposal. По секрету скажу, что мы близки к принятию его в C++29.
13 · 2.9K ·
G
greg
Фотография
нажмите — покажем
@ БОЛЬШАЯ ЧАСТЬ ОШИБОК И УЯЗВИМОСТЕЙ ИМЕЮТ ПОД СОБОЙ BUFFER OVERFLOW @ ДАВАЙТЕ ПЕРЕЙДЕМ НА MEMORY SAFE ЯЗЫК @ КАЗАЛОСЬ БЫ #антибугурт *пикрелейтед* https://blog.cloudflare.com/18-november-2025-outage/
20 · 3.1K ·
G
greg
Фотография
нажмите — покажем
Наконец-таки мы додумались до ссылок которые могут быть нулями https://wg21.link/P2988
44 · 6.4K ·
G
greg
Фотография
нажмите — покажем
Фотография
нажмите — покажем
82 · 5.6K ·
I
Ivan Sokolov
Время пятничного зачилла пришло с запозданием и не в тот паблик. Надеюсь, все уже знакомы с P2806 do expressions. Я бумагу пока даже не открывал. Поговорим про очевидный прародитель и этого предложения, и похожих конструкций в разных языках. Statement expressions в GNU C позволяют писать compound statement там, где нужен expression. В случае C на этом их описание практически заканчивается. Итак, тип и значение полученного выражения берётся из последнего statement внутри скобок, если это выражение... int x = ({ int sum = 0; for(int i = 1; i <= 10; ++i) sum += i; sum; }); // x = 55 ...причём вывод типа похож на ->auto, и на это не повлиять. int i = 0, &ri = i; // decltype(({ ri; })) = int // decltype(({ (int&&)i; })) = int Guaranteed copy elision работает, но аналога RVO нет. struct immobile { immobile(); immobile(immobile&&)=delete; }; struct moveonly { moveonly(); moveonly(moveonly&&)=default; }; auto x = ({ immobile(); }); // ok since C++17 auto y = ({ moveonly m; m; }); // error: call to deleted copy ctor Но то всё мелочи. Сабж выгодно отличается от замыканий возможностью control flow, влияющего на содержащую функцию: while(1) while(({ break; // gcc: breaks outer loop // clang: breaks inner loop 1; })); goto внутрь делать нельзя, но можно наружу, в том числе вниз: auto v = ({ goto out; std::vector<int>(); }); out: // The usual error "jump crosses initialization of v" // does NOT happen. v is uninitialized. // Its destructor will probably crash. ...Если вы ещё не забыли, у нас тот самый пятничный зачилл. Есть малозначительные разногласия по поводу того, где сабж в принципе разрешён. int i = ({1;}); // error: never ok outside functions decltype(({1;})) i; // error: ...even in unevaluated context struct foo { decltype(({1;})) i; // error: again, never ok outside functions. // gcc emits disappointing but correct message // clang complains about file scope even though it's not }; int main() { std:
5 · 839 ·

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем