3 Aug 2026, 08:03 UTC586 views23 reactionsread 7 August 2026 Убедительная просьба - обновляйте компиляторы.
Помимо внедрения множества способов выстрелить себе в ногу, новые версии компиляторов чинят разные веселые баги.
Вот к примеру вот этот код:
struct S {
int x;
auto foo() {
return [*this](this auto&& self) {
__builtin_printf("%d ", x);
x = 10;
};
}
};
Возвращаемая лямбда возвращаемая из метода foo капчурит this, и потом модифицирует значени…
💊18🤔5
1 Aug 2026, 08:51 UTC690 views33 reactionsread 7 August 2026 Photo
Я сначала подумал, что надо на такие мероприятия футболку брать с QR кодом канала на спине, пиарить канал на конфе.
А потом подумал: меня же спалят как админа этого канала... Свят-свят-свят.
P.S. новый пост зашедулен на понедельник :)
😁27🤡4❤🔥2
21 Jul 2026, 13:42 UTC≈1,250 views39 reactionsread 7 August 2026 Те, кто со мной регулярно общаются, знают, что я ненавижу сраный move.
И всю move семантику. И у меня даже готовился доклад про то, как я его ненавижу, с кучей веселых примеров, которые не приехали еще сюда в дурку. Где я собрал в кучку почему именно я его ненавижу, но там получилось очень много и очень неструктурированно, поэтому доклад до сих пор в разработке.
Но вот один пример, который я выкину таки сюда.
int…
🤷♂20😁11🤡3👎2😭2🔥1
16 Jul 2026, 11:11 UTC≈1,410 views30 reactionsread 7 August 2026 Приятно видеть, что C++ настолько тщательно следит за обратной совместимостью.
Мы столько боли ради этой обратной совместимости пережили.
И теперь вдвойне приятно видеть, что поменяться может семантика вообще всего что угодно.
Например, вот это:
decltype(auto) f(int&& x)
{
return (x);
}
static_assert(std::same_as<decltype(f(1)), int&>);
Оно нормально скомпилируется в С++20, но упадет на static_assert в C+…
😁21❤5🥴2🔥1🗿1
10 Jul 2026, 12:46 UTC≈1,410 views37 reactionsread 7 August 2026 Вместо дурки я сегодня продолжаю пересматривать доклад великолепного Константина Владимирова.
Жду не дождусь, когда он появится в открытом доступе, чтобы поскидывать интересные таймкоды. Это будет легко, просто скриптом каждые две минуты написать....
Вместо дурки хочу поделиться интересной конструкцией, о которой до этого не знал, но почерпнул из того доклада.
Пусть у нас есть класс:
template<typename T>
struct…
😁29👌4❤2🤯2
3 Jul 2026, 11:27 UTC≈1,510 views72 reactionsread 7 August 2026 Ой, я когда-нибудь брошу этот сраный язык.
Давайте разберем по шагам.
int main() {
Box b;
b->hi();
}
Что тут происходит? Мы создаем объект типа Box, иииии... вызываем у него оператор ->, а у того, что он вернет вызывает функцию hi(). Логично? Логично!
Смотрим, что такое у нас тип Box.
struct Box {
Proxy operator->() {
return {};
}
};
Ага, значит оператор выдает экземпляр объекта тип…
🔥28🤯25😁12❤3💊3🤡1
26 Jun 2026, 09:12 UTC≈1,470 views31 reactionsread 7 August 2026 Мой дорогой друг вот с этого канала о С++:
@thisnotes
Прислал мне просто восхитительную вещь.
Давайте посмотрим вот на этот код
const std::vector<Obj>& vec =
(argc > 1)
? std::vector<Obj>{}
: ready_vec;
Вот тут зашита просто удивительая проблема. Нет, это не ссылка на временный объект, потому что const продлевает время жизни ссылки.
Интересный факт, что вот такой код
#include <iostream>
#include…
🤯17🔥9🌚2😁2🫡1
22 Jun 2026, 10:51 UTC≈1,730 views29 reactionsread 7 August 2026 Повторяю пропавший пост.
Он был о докладе Евгения Ерохина с прошедшего CppRussia. С моими пространными размышлениями о том, какие у него сложные зубодробильные доклады и как надо каждый слайд ставить на паузу и уходить получать доп образования, чтобы не терять контекст...
А пример, который хотел у него подрезать для этого канала был такой:
int fn(int a, int b) {
int res = 0;
asm volatile ("nop");
asm volati…
😭23👏5⚡1
16 Jun 2026, 09:38 UTC≈1,780 views27 reactionsread 7 August 2026 Сорян, я выяснил, что у меня давно не было публикаций... А у меня просто один пост пропал. Не могу его найти ни в отложках ни в опубликованных...
Такчто сейчас перетасую расписание и пошел искать.
🌚21❤4🤝2
16 Jun 2026, 09:35 UTC≈1,740 views28 reactionsread 7 August 2026 В разных новых (уже скоро будет 10 лет) стандартах иногда бывают мелкие но очень приятные изменения.
Вот такой код
#include <iostream>
int main() {
bool b = true;
b++;
std::cout << b;
}
Был валиден до С++17, но
<source>:6:5: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
Вот так вот.
❤19👍9
5 Jun 2026, 08:42 UTC≈2,140 views46 reactionsread 7 August 2026 Вот сколько я дурки повидал (у меня канал про это целый заведен так-то !!!) но с удивлением я осознал, что вот такая штука
%:include <iostream>
int main() <%
int a<:3:> = <% 10, 20, 30 %>;
std::cout << a<:1:>;
%>
Компилируется во всех комипляторах...
Потому что язык заботливо сохранил диграфы — на случай, если ваша клавиатура из 1973 года.
Пипец какая жесть.
😁29🤯15😐2
29 May 2026, 12:14 UTC≈2,030 views37 reactionsread 7 August 2026 Разбираем письма читателей.
Нам прислали вот такой вот код:
#include <memory>
#include <iostream>
namespace user {
struct user_type {};
using my_type = std::shared_ptr<user_type>;
void tie(my_type const&, my_type const&)
{
std::cout << "user::tie\n";
}
void oups()
{
my_type t1;
my_type t2;
tie(t1, t2);
}
} // namespace user
int main()
{
user::oups();
}
Что в нем примечательного. Под…
🤯29❤5😱3
Showing the 12 most recent of 20 posts we hold for @cpp_durka. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.