avatar
С/С++ Portal | Программирование
@Cpportal
25.07.2026 16:07
Рефлексия в C++ позволяет буквально обойти инкапсуляцию.
В этом примере код получает доступ к приватному полю класса Foo, изменяет его значение и выводит:
public: 2 private: 43

То есть private больше не выглядит такой уж непробиваемой границей

https://godbolt.org/z/7fxs1c1xo

@Cpportal
🔥 6
🌚 3
1
22 642
avatar
С/С++ Portal | Программирование
@Cpportal
24.07.2026 16:07
Как вообще работают брейкпоинты?

https://interrupt.memfault.com/blog/cortex-m-breakpoints

Статья разбирает, что происходит «под капотом», когда разработчик ставит breakpoint в отладчике, особенно на микроконтроллерах ARM Cortex-M. Хотя примеры ориентированы на embedded-разработку, основные принципы применимы и к другим компилируемым языкам и отладчикам.

@Cpportal
🔥 4
2
🤔 2
28 1.2K
avatar
С/С++ Portal | Программирование
@Cpportal
23.07.2026 16:07
Это одна из причин, почему xxHash стал одной из самых быстрых некриптографических хеш-функций из когда-либо созданных.

Пять операций:
- две операции умножения;
- три операции XOR.

// финальный шаг avalanche (лавинный эффект)
// перемешивает оставшиеся биты, чтобы небольшие изменения
// распространялись повсюду

static uint32_t avalanche(uint32_t h)
{
h ^= h >> 15;
h *= 0x2c1b3c6d;
h ^= h >> 12;
h *= 0x297a2d39;
h ^= h >> 15;

return h;
}

// помогает равномерно распределять близкие значения хеша


Измените всего один бит во входных данных — и почти каждый бит в выходном хеше изменится.

@Cpportal
🔥 4
2
26 1.4K
avatar
С/С++ Portal | Программирование
@Cpportal
23.07.2026 06:07
Целочисленное деление до сих пор остаётся одной из самых медленных операций на современных CPU.

libdivide позволяет полностью его избежать.

Вместо деления библиотека использует умножение, битовый сдвиг и несколько дешёвых корректировок.

Результат остаётся тем же, но вычисляется гораздо быстрее.

@Cpportal
🔥 18
5
👍 4
🤣 1
35 1.4K
avatar
С/С++ Portal | Программирование
@Cpportal
22.07.2026 14:07
1 августа Яндекс проведет Back to Back — бэкенд- конференцию, которая пройдет в Москве, Белграде и Ереване

Если вы разрабатываете бэкенд на Go, Python, Java, C++, Rust или любом другом стеке — присоединяйтесь. Обсудим темы, которые актуальны всем вне зависимости от языка. В Москве состоится трек C++ Zero Cost — про производительность, системную разработку и инженерные задачи на C++, там же пройдет Architecture & Performance — про архитектуру, производительность и реальные production-задачи.

На конференции выступят эксперты из Яндекса, Авито, Positive Technologies и других компаний. Что планируют в Москве:

🔅Новости со встречи Международного комитета C++ — про интересные возможности C++26, перспективы языка и планы на C++29 расскажет Антон Полухин из Яндекса

🔅9 миллиардов этажей concurrency — база про concurrency, parallelism и многопоточность от руководителя инфраструктуры поиска Авито Андрея Аксенов

🔅Сверлим дыры в луне: добавляем поддержку языка LuaJIT в eBPF-профилировщик Perforator — ограничения eBPF, сложность устройства LuaJIT и челленджи профилирования динамических языков от Саввы Лебедева из Positive Technologies

Посмотреть всю программу можно на сайте конференции.

Помимо докладов, в Москве участников ждут экспертные сессии 1:1 и выступление питерской группы «Научно-технический рэп» с хитами «Алкоритм», «Тыжпрограммист».

Программа и регистрация — на сайте.
5
🔥 2
👍 1
6 1.5K
avatar
С/С++ Portal | Программирование
@Cpportal
22.07.2026 06:07
Поиск индекса младшего установленного бита

Кажется, что для этого нужен цикл.

Но этот алгоритм решает задачу с помощью всего одного умножения и одного обращения к таблице.

Трюк основан на последовательностях де Брёйна, и современные компиляторы до сих пор распознают его как классический битовый хак.

@Cpportal
🔥 12
🤔 5
2
27 1.5K
avatar
С/С++ Portal | Программирование
@Cpportal
21.07.2026 16:06
Паттерн Pimpl: выделить реализацию в куче, написать конструктор копирования, конструктор перемещения, деструктор, оператор копирующего присваивания и оператор перемещающего присваивания.

C++26:
std::indirect<Impl> impl_;


P3019 добавляет в C++26 std::indirect и std::polymorphic.

indirect<T> — значение, размещённое в куче, с автоматической семантикой копирования.

Pimpl без шаблонного кода.

polymorphic<T> — то же самое, но при копировании сохраняет производный тип. Виртуальная диспетчеризация с value semantics.

Для типов-обёрток больше не нужно вручную реализовывать Rule of Five.

@Cpportal
11
🔥 4
👀 2
18 1.6K
avatar
С/С++ Portal | Программирование
@Cpportal
21.07.2026 06:07
Это один из лучших плейлистов о том, как начать изучать C++, где каждой теме посвящено отдельное видео.

Материал подходит для начинающих: видео короткие, понятные и ориентированы на практику.

https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb


@Cpportal
👍 16
6
👎 3
🤣 1
70 1.7K
avatar
С/С++ Portal | Программирование
@Cpportal
20.07.2026 16:07
Тест Миллера — Рабина никогда не доказывает, что число простое.

Он может сказать только:

«вероятно простое».

И всё же этот вероятностный тест используют для генерации RSA-ключей, защищающих банки, SSH-серверы и HTTPS-соединения.

При достаточном количестве случайных свидетелей вероятность того, что составное число пройдёт проверку, становится астрономически малой.

@Cpportal
12
👎 1
🤣 1
23 1.7K
avatar
С/С++ Portal | Программирование
@Cpportal
20.07.2026 06:07
Задумывались, как поисковые строки прощают вам опечатки? За это отвечает нечёткий поиск — fuzzy search.

Отличный разбор того, как он работает: от расстояния редактирования до практической реализации. Стоит прочитать, если вы разрабатываете поиск.

https://meilisearch.com/blog/fuzzy-search

@Cpportal
🔥 9
3
30 1.9K
avatar
С/С++ Portal | Программирование
@Cpportal
19.07.2026 06:07
Хотите разобраться в основах прерываний, а заодно изучить другие базовые принципы взаимодействия CPU, аппаратного и программного обеспечения?

Тогда вам на https://cpu.land

@Cpportal
🔥 13
2
78 2.1K
avatar
С/С++ Portal | Программирование
@Cpportal
18.07.2026 16:07
При шифровании и расшифровании RSA почти никогда не выполняет настоящее деление по модулю.

Деление — дорогая операция, поэтому вместо него в реализациях используют редукцию Монтгомери.

Питер Монтгомери предложил этот метод в 1985 году, выбрав (R) в виде степени двойки, благодаря чему деление на (R) сводится к обычному битовому сдвигу.

Операции RSA, защищающие ваш онлайн-банкинг, каждый день опираются на эту оптимизацию.

@Cpportal
11
🔥 4
👍 3
26 2.1K
avatar
С/С++ Portal | Программирование
@Cpportal
17.07.2026 17:41
Когда std::vector увеличивает свою емкость, он поочередно копирует каждый элемент, а затем уничтожает исходные объекты.

Для типов, которые по сути представляют собой просто набор битов (string, unique_ptr, сам vector), такое копирование с последующим уничтожением — лишняя работа.

В C++26 компилятор сможет вместо этого использовать memcpy.
Предложение P2786 добавляет в C++26 тривиальную перемещаемость. Пометьте свой тип как trivially_relocatable, и контейнеры смогут переносить элементы одним вызовом memcpy вместо копирования с последующим уничтожением.
Измеренное ускорение при перераспределении памяти vector для распространенных типов: от 2 до 10 раз.

@Cpportal
9
🔥 6
16 2.4K

С/С++ Portal | Программирование

15.1K
Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика

Сотрудничество, реклама: @devmangx

Менеджер: @Spiral_Yuri

РКН: https://clck.ru/3Foc4d
Открыть в Telegram