С/С++ Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика Сотрудничество, реклама: @devmangx Работаем с @Spiral_Yuri РКН: https://clck.ru/3Foc4d
Ko'proq ko'rsatish📈 Telegram kanali С/С++ Portal | Программирование analitikasi
С/С++ Portal | Программирование (@cpportal) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 14 822 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 405-o'rinni va Rossiya mintaqasida 43 843-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 14 822 obunachiga ega bo‘ldi.
15 Sentabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -138 ga, so‘nggi 24 soatda esa -10 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 14.16% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.89% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 099 marta ko‘riladi; birinchi sutkada odatda 1 170 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 28 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent linux, ядро, c++, процессор, указатель kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика
Сотрудничество, реклама: @devmangx
Работаем с @Spiral_Yuri
РКН: https://clck.ru/3Foc4d”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 16 Sentabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
18 сентября — приходи на онлайн-трансляцию, где мы расскажем подробнее о практических курсах и ответим на все вопросы. После вебинара пройдет обзорная лекция про системное программирование и роль языка С. Регистрация — здесь.
std::expected сигнатура функции может описывать и результат резервирования, и ожидаемые варианты ошибок. Это делает API проще в использовании.
👉 @Cpportal.cu с CUDA-ядром
* связать всё через pybind11
Допустим, вы написали своё ядро сложения:
#include <torch/extension.h>
__global__ void add_kernel(
const float* a,
const float* b,
float* out,
int n) {
int idx = blockIdx.x * blockDim.x + threadIdx.x;
if (idx < n)
out[idx] = a[idx] + b[idx];
}
Теперь его нужно запускать так:
void add_cuda(torch::Tensor a,
torch::Tensor b,
torch::Tensor out) {
int n = a.numel();
int threads = 256;
int blocks = (n + threads - 1) / threads;
add_kernel<<<blocks, threads>>>(
a.data_ptr<float>(),
b.data_ptr<float>(),
out.data_ptr<float>(),
n);
}
Затем экспортируем функцию через pybind11:
PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
m.def("add_cuda", &add_cuda);
}
После этого собираем расширение:
from torch.utils.cpp_extension import load
ext = load(
name="my_extension",
sources=[
"my_extension.cpp",
"my_kernel.cu"
]
)
Теперь его можно использовать прямо из PyTorch:
out = torch.empty_like(a)
ext.add_cuda(a, b, out)
Подробнее это разобрано в руководстве PyTorch.
👉 @CpportalFILE* избавляет от необходимости вручную закрывать файл как при обычном выходе из функции, так и при возникновении исключения.
Именно такие абстракции C++ мне проще всего оправдать.
А ещё лучше — использовать defer.
👉 @Cpportal{user100}:cart и {user100}:orders хешируют только байты внутри {}.
Поэтому оба ключа попадают на один и тот же узел, что позволяет выполнять операции сразу над несколькими ключами в кластерном режиме.
👉 @CpportalEOWNERDEAD.
Теперь мьютекс принадлежит вам, и нужно разобраться, не оставил ли другой поток общие данные в состоянии незавершённого обновления.
👉 @Cpportaltype = utf8d[byte]
state = utf8d[256 + state*16 + type]
Некорректный ввод переводит автомат в состояние REJECT, а валидная последовательность возвращает его в ACCEPT.
👉 @Cpportali % n можно заменить на более дешёвое i & (n - 1).
Но пока GCC эту оптимизацию не выполняет, как, возможно, и некоторые другие оптимизации, связанные с контрактами.
Добиться нужного результата можно с помощью конструкции [[assume ...]], появившейся в C++23.
👉 @Cpportal