Нижеприведенный список является моей небольшой коллекцией примеров кода на языке С, которые не являются корректными с точки зрения языка С++ или имеют какое-то специфичное именно для языка С поведение. (Именно в эту сторону: С код, являющийся некорректным с точки зрения С++.)
Рубрика «c++» - 14
Элементы языка С, которые являются неподдерживаемыми в языке С++
2022-08-02 в 3:15, admin, рубрики: C, c++, compatibility, curiosity, difference, listЯндекс выложил в опенсорс бету фреймворка userver
2022-07-29 в 7:55, admin, рубрики: c++, c++17, coroutine, coroutines, dynamic changes, github, json, logs, mongo, mongodb, open source, postgres, postgresql, python, python3, redis, sql, synchronization, userver, yaml, Yandex, Блог компании Яндекс, высокая производительность, открытый код
🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:
- Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
- Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
- Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.
Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать полностью »
Почему в С++ массивы нужно удалять через delete[]
2022-07-27 в 12:18, admin, рубрики: array, c++, Cpp, delete, pvs, pvs-studio, static code analysis, Блог компании PVS-Studio, ПрограммированиеЗаметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу под кат.
Как написать свою кроссплатформенную библиотеку для хуков и не отстрелить себе ноги
2022-07-24 в 10:42, admin, рубрики: c++, ассемблер, ненормальное программирование, низкоуровневое программирование, реверс-инжиниринг, хукиВ текущих реалиях, для перехвата нативных функций существует большое множество библиотек. Но что делать если ни одна из них тебе не нравится?
Конечно же написать свою!
В этой статье я расскажу что лежит внутри библиотек для перехвата x86 кода и почему оно так работает. А также - как искал баги неделями, и что из этого вообще получилось
Сразу же немного обозначу терминологию, используемую в тексте:
Хук — перехват функции, когда перед вызовом какого-то кода выполняется наш коллбэк.
Трамплин — оригинальный код, который нужно вызвать для передачи управлению обратно в перехваченную функцию
NOP опкод - Читать полностью »
Языка С-C++ не существует
2022-07-13 в 16:36, admin, рубрики: C, c++, декларативное программирование, императивное программирование, найм разработчиков, Программирование, С++Каждый день, везде, в том числе в технических статьях, появляется мифический С/С++, честно говоря я просто устал это видеть и хочу в этой короткой статье донести простейшую мысль - С и С++ это два совершенно разных языка с разными требованиями и подходами к разработке.
-
Языки несовместимы и уже давно. Они развиваются параллельно(хотя про развитие стандарта С не знает ничего даже гугл, но он есть, добавили дженерики и хотят лямбды...)
C++. Убираем приватные поля из описания класса или немного дурачества
2022-07-09 в 15:30, admin, рубрики: c++, firewall, pimpl, КодоБред, ненормальное программирование, ПрограммированиеКомпьютеры быстры, но вы этого не знаете
2022-07-08 в 10:21, admin, рубрики: c++, highload, Блог компании Sportmaster Lab, высокая производительность, ПрограммированиеЛюди чертовски плохо разбираются в величинах, особенно в тех, которые не могут воспринимать биологически. Например, мы интуитивно понимаем, насколько тяжелее предмет массой 10 кг предмета массой 1 кг.
Ощущение величин можно улучшить, преобразовав их каким-нибудь образом в сигналы, знакомые мозгу.
Смотрели ли вы эти видео?
Второе нравится мне больше всего. Ежедневно я съедаю по чашке риса, так что измеряю состояние Джеффа не только наглядно, но и своим желудком.
Совсем недавно я внёс несколько оптимизаций в код, что помогло мне интуитивно понять, насколько быстро может работать компьютер. И я решил, что этим нужно поделиться.
Читать полностью »
Игра: найди ошибку в C++ коде
2022-06-29 в 8:00, admin, рубрики: C, c++, code review, quiz, баги, Блог компании PVS-Studio, игра, КодоБред, найди ошибку, никто не читает теги, ошибки в коде, Программирование, Си, тестирование
Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность и развлечься. Попробуйте быстро отыскать баг в фрагменте исходного кода и ткнуть в него мышкой.
Holy C++
2022-06-19 в 17:10, admin, рубрики: c++, C++20, ненормальное программирование, Совершенный кодВ этой статье постараюсь затронуть все вещи, которые можно без зазрения совести выкинуть из С++ не потеряв ничего(кроме боли), уменьшить стандарт, нагрузку на создателей компиляторов, студентов изучающих язык и мемосоздавательный потенциал громадности С++
В первую очередь хочется убрать из языка то, что приводит к частым ошибкам и мешает развитию языка, тут идеальным кандидатом можно назвать
1 - union - сумм тип из 70х, в С идея хранения одного типа из нескольких в одном участке памяти выглядит неплохо и сейчас, ведь там все типы это набор байт с заданным размером.
Математическое решение задачи о матрице «змейкой»
2022-06-18 в 21:14, admin, рубрики: c++, Алгоритмы, Занимательные задачки, Лайфхаки для гиков, математика, математика для программистов, Программирование, условия, циклыНастоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/Читать полностью »