С++ — это настоящий кайфǃ
Я хочу, чтобы вы задали себе один вопрос и честно на него ответили. Когда в последний раз вы получали настоящее удовольствие от программирования? Оглядываясь назад, я понимаю, что не испытывал подобных ощущений, наверное… уже лет десять. Удовольствия у меня не было ни от JavaScript, ни от Python, ни от Ruby или C — ни от чего. Когда я говорю «удовольствие» — я имею в виду ощущения человека, которого во время работы над неким проектом переполняет искренний восторг. Этот человек постоянно ловит себя на такой мысли: «Ох, ну какая ж круть. Поверить не могу, что моя безумная идея и правда сработала!».
https://habr.com/ru/companies/wunderfund/articles/874216/
#cpp #programming
👉 @cpp_lib
Я хочу, чтобы вы задали себе один вопрос и честно на него ответили. Когда в последний раз вы получали настоящее удовольствие от программирования? Оглядываясь назад, я понимаю, что не испытывал подобных ощущений, наверное… уже лет десять. Удовольствия у меня не было ни от JavaScript, ни от Python, ни от Ruby или C — ни от чего. Когда я говорю «удовольствие» — я имею в виду ощущения человека, которого во время работы над неким проектом переполняет искренний восторг. Этот человек постоянно ловит себя на такой мысли: «Ох, ну какая ж круть. Поверить не могу, что моя безумная идея и правда сработала!».
https://habr.com/ru/companies/wunderfund/articles/874216/
#cpp #programming
👉 @cpp_lib
Media is too big
VIEW IN TELEGRAM
Сборка C++ проектов. CMAKE. Статические, динамические библиотеки. Github actions. GE серии
0:00:00 - Введение
0:01:20 - Статические библиотеки в CMAKE
0:09:22 - Динамические библиотеки в CMAKE
0:17:22 - Создаем таргет тестирования
0:27:24 - Пользовательский интерфейс CMAKE, опции
0:31:08 - Github actions
источник
#cpp #programming
👉 @cpp_lib
0:00:00 - Введение
0:01:20 - Статические библиотеки в CMAKE
0:09:22 - Динамические библиотеки в CMAKE
0:17:22 - Создаем таргет тестирования
0:27:24 - Пользовательский интерфейс CMAKE, опции
0:31:08 - Github actions
источник
#cpp #programming
👉 @cpp_lib
Tensor.h – Лёгкая и удобная библиотека для работы с тензорами на C
Если вам нужна простая и эффективная библиотека для работы с тензорами в C, обратите внимание на tensor.h. Этот проект предлагает лёгкую в использовании реализацию тензоров с минимальным оверхедом.
🔹 Основные возможности:
✅ Поддержка многомерных тензоров
✅ Простая и понятная API
✅ Поддержка операций над тензорами (сложение, умножение и т. д.)
✅ Небольшой размер кода
https://github.com/apoorvnandan/tensor.h
#cpp #programming
👉 @cpp_lib
Если вам нужна простая и эффективная библиотека для работы с тензорами в C, обратите внимание на tensor.h. Этот проект предлагает лёгкую в использовании реализацию тензоров с минимальным оверхедом.
🔹 Основные возможности:
✅ Поддержка многомерных тензоров
✅ Простая и понятная API
✅ Поддержка операций над тензорами (сложение, умножение и т. д.)
✅ Небольшой размер кода
https://github.com/apoorvnandan/tensor.h
#cpp #programming
👉 @cpp_lib
🦾Хардкорный тест по языку С++🦾
📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «C++ Developer. Professional» от OTUS.
Сможете сдать - пройдете на курс по спеццене!
⏰ Время прохождения теста ограничено 30 минут
👉ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «C++ Developer. Professional» от OTUS.
Сможете сдать - пройдете на курс по спеццене!
⏰ Время прохождения теста ограничено 30 минут
👉ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
Опасность устарела, неопределенность недопустима: undefined behavior в С++20/23/26
Сергей Талантов
В современных стандартах С++ стало меньше UB. Разбираем на конкретных кейсах.
— Начиная с С++20 отрицательные целые числа обязательно должны быть представлены в дополнительном коде. Это сокращает количество UB в битовых операциях и не только.
— Введение std::ssize, возвращающего знаковый размер контейнеров, уменьшает количество ошибок и UB в циклах.
— Расширение времени жизни временных объектов в циклах for, появившееся в С++23, решает неочевидные проблемы.
— Казалось бы, мелочь, но инициализация std::string нулевым указателем раньше была UB, a теперь запрещена.
— В С++23 появился эксклюзивный режим открытия файла (O_EXCL), что решает проблему гонок (time-of-check to time-of-use).
— Будет ли введена арифметика с насыщением в С++26?
Некоторые конструкции языка признаются небезопасными и устаревшими, также проходимся по ним:
— Осталось ли что-то от volatile?
— Можно ли теперь делать неявный захват this по значению в лямбдах?
— Какие операции с enum теперь не в почете.
источник
#cpp #programming
👉 @cpp_lib
Сергей Талантов
В современных стандартах С++ стало меньше UB. Разбираем на конкретных кейсах.
— Начиная с С++20 отрицательные целые числа обязательно должны быть представлены в дополнительном коде. Это сокращает количество UB в битовых операциях и не только.
— Введение std::ssize, возвращающего знаковый размер контейнеров, уменьшает количество ошибок и UB в циклах.
— Расширение времени жизни временных объектов в циклах for, появившееся в С++23, решает неочевидные проблемы.
— Казалось бы, мелочь, но инициализация std::string нулевым указателем раньше была UB, a теперь запрещена.
— В С++23 появился эксклюзивный режим открытия файла (O_EXCL), что решает проблему гонок (time-of-check to time-of-use).
— Будет ли введена арифметика с насыщением в С++26?
Некоторые конструкции языка признаются небезопасными и устаревшими, также проходимся по ним:
— Осталось ли что-то от volatile?
— Можно ли теперь делать неявный захват this по значению в лямбдах?
— Какие операции с enum теперь не в почете.
источник
#cpp #programming
👉 @cpp_lib
C++: Эмулятор NES с нуля
#1: Bitwise Basics & Overview
#2: The CPU (6502 Implementation)
#3: Buses, RAMs, ROMs & Mappers
#4: PPU - Background Rendering
#5: PPU - Foreground Rendering
#6: APU - Sounds, Beeps & Bloops
#7: More About Mappers
источник
#cpp #programming
👉 @cpp_lib
#1: Bitwise Basics & Overview
#2: The CPU (6502 Implementation)
#3: Buses, RAMs, ROMs & Mappers
#4: PPU - Background Rendering
#5: PPU - Foreground Rendering
#6: APU - Sounds, Beeps & Bloops
#7: More About Mappers
источник
#cpp #programming
👉 @cpp_lib
❓Хотите освоить алгоритмы, которые лежат в основе многих IT-решений? Время познакомиться с магией оптимизации!
На открытом уроке «Поиск кратчайшего пути во взвешенном графе» мы разберём алгоритм Дейкстры: от теории до практической реализации. Узнайте, как находить решения быстрее, надёжнее и эффективнее.
Алгоритмы — это как GPS для программирования. После урока вы сможете уверенно строить маршруты в графах, прокачаете свои навыки и сделаете шаг к профессиональному уровню.
⏰ Встречаемся 3 февраля в 20:00 мск, участники получат скидку на большое обучение «Алгоритмы и структуры данных».
👉 Регистрация открыта: https://vk.cc/cI0Gv4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке «Поиск кратчайшего пути во взвешенном графе» мы разберём алгоритм Дейкстры: от теории до практической реализации. Узнайте, как находить решения быстрее, надёжнее и эффективнее.
Алгоритмы — это как GPS для программирования. После урока вы сможете уверенно строить маршруты в графах, прокачаете свои навыки и сделаете шаг к профессиональному уровню.
⏰ Встречаемся 3 февраля в 20:00 мск, участники получат скидку на большое обучение «Алгоритмы и структуры данных».
👉 Регистрация открыта: https://vk.cc/cI0Gv4
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Автоматическая Генерация Конфигураций для Make Сборок
При разработке программного обеспечения (особенно для микроконтроллеров) рано или поздно придется столкнуться с тем, что надо как-то передавать конфигурации для данного программного проекта.
В своем опыте я пришел к выводу, что с точки зрения масштабирования кодовой базы, конфиги проще всего передавать через переменные окружения. Да.. Плюс в том, что переменные окружения можно определять прописывая прямо в скриптах (Make, CMake и т.п.).
Выглядит это так. У каждой сборки есть файл config.mk в котором перечислены программные компоненты из которых должна собираться эта конкретная сборка. Содержимое этого файла обычно выглядит так.
https://habr.com/ru/articles/798213/
#cpp #programming
👉 @cpp_lib
При разработке программного обеспечения (особенно для микроконтроллеров) рано или поздно придется столкнуться с тем, что надо как-то передавать конфигурации для данного программного проекта.
В своем опыте я пришел к выводу, что с точки зрения масштабирования кодовой базы, конфиги проще всего передавать через переменные окружения. Да.. Плюс в том, что переменные окружения можно определять прописывая прямо в скриптах (Make, CMake и т.п.).
Выглядит это так. У каждой сборки есть файл config.mk в котором перечислены программные компоненты из которых должна собираться эта конкретная сборка. Содержимое этого файла обычно выглядит так.
https://habr.com/ru/articles/798213/
#cpp #programming
👉 @cpp_lib
Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 04 — Компиляторная археология
Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 04 — Компиляторная археология
В данной статье затронем частичку компиляторной истории. И постараемся собрать проект под компилятор 1995 года. Вы спросите, но зачем? Я отвечу: Потому, что можем!
Часть 1
Часть 2
Часть 3
https://habr.com/ru/articles/876272/
#cpp #programming
👉 @cpp_lib
Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 04 — Компиляторная археология
В данной статье затронем частичку компиляторной истории. И постараемся собрать проект под компилятор 1995 года. Вы спросите, но зачем? Я отвечу: Потому, что можем!
Часть 1
Часть 2
Часть 3
https://habr.com/ru/articles/876272/
#cpp #programming
👉 @cpp_lib
Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 05 — GDI рендер
В данной статье опишу реализацию GDI рендера для Windows. Узнаем как программировали деды под windows в середине 1990-ых. И наконец создадим функциональный рендер, с возможностью рисовать все типы изображений.
Часть 1
Часть 2
Часть 3
Часть 4
https://habr.com/ru/articles/877542/
#cpp #programming
👉 @cpp_lib
В данной статье опишу реализацию GDI рендера для Windows. Узнаем как программировали деды под windows в середине 1990-ых. И наконец создадим функциональный рендер, с возможностью рисовать все типы изображений.
Часть 1
Часть 2
Часть 3
Часть 4
https://habr.com/ru/articles/877542/
#cpp #programming
👉 @cpp_lib
Поговорим об observability на Яндекс Infra Meetup #4
Приглашаем на митап про наблюдаемость приложений от Яндекс Go и Техплатформы Екома и Райдтеха Яндекса. В программе два трека, выбрать можно любой:
CaseLab: observability. Интерактивный формат решения практических задач совместно с модераторами.
CaseStudy. 3 доклада от спикеров сервисов:
— Толя Беляев расскажет про варианты сбора метрик приложения микросервисной архитектуры
— Леша Королев объяснит, как построить дашборд всей платформы Такси
— Леша Золотухин покажет, как создать диагностические дашборды в инфраструктуре на 2000+ микросервисов
После CaseLab и докладов — нетворкинг в неформальной атмосфере и афтепати.
13 февраля, 18:30
Москва, офлайн
Успейте зарегистрироваться и зовите коллег!
Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки.
Приглашаем на митап про наблюдаемость приложений от Яндекс Go и Техплатформы Екома и Райдтеха Яндекса. В программе два трека, выбрать можно любой:
CaseLab: observability. Интерактивный формат решения практических задач совместно с модераторами.
CaseStudy. 3 доклада от спикеров сервисов:
— Толя Беляев расскажет про варианты сбора метрик приложения микросервисной архитектуры
— Леша Королев объяснит, как построить дашборд всей платформы Такси
— Леша Золотухин покажет, как создать диагностические дашборды в инфраструктуре на 2000+ микросервисов
После CaseLab и докладов — нетворкинг в неформальной атмосфере и афтепати.
13 февраля, 18:30
Москва, офлайн
Успейте зарегистрироваться и зовите коллег!
Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки.
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Практика языка C, 2023-2024
Семинар 1.1. Алгоритм Евклида.
Семинар 1.2. Системы счисления.
Семинар 1.3. Числа Фибоначчи.
Допсеминар: unix shell
Семинар 2.1. Простые числа.
Семинар 2.2. Побитовые вычисления.
Семинар 2.3. Время и случайность.
Углубление пройденного: логическая память и виртуальная память.
Семинар 3.1. Линейный поиск и простые сортировки.
Семинар 3.2. Стратегия "разделяй и властвуй".
источник
#cpp #programming
👉 @cpp_lib
Семинар 1.1. Алгоритм Евклида.
Семинар 1.2. Системы счисления.
Семинар 1.3. Числа Фибоначчи.
Допсеминар: unix shell
Семинар 2.1. Простые числа.
Семинар 2.2. Побитовые вычисления.
Семинар 2.3. Время и случайность.
Углубление пройденного: логическая память и виртуальная память.
Семинар 3.1. Линейный поиск и простые сортировки.
Семинар 3.2. Стратегия "разделяй и властвуй".
источник
#cpp #programming
👉 @cpp_lib