Библиотека C/C++ разработчика
6.81K subscribers
655 photos
690 videos
8 files
940 links
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Download Telegram
Выносим за скобки настройки CMake

Каждый день я создаю множество однотипных проектов C++ с системой сборки cmake. И открывая проекты в IDE, каждый раз снимаю галочки с типа сборки, оставляя только Debug. А ещё меняю путь к папке сборки. Мелочь, а утомляет.

Я решил изучить, как сделать эти действия автоматически, а в итоге узнал про удобный метод обмена настройками cmake между программистами.

Оказывается, существуют пресеты. Пресеты позволяют вынести параметры сборки из CMakeLists.txt. Это нужно для того, чтобы ваши проекты без проблем собирались под разные платформы и тулчейны. Пресет представляет из себя json-файл, в котором задаются различные параметры, влияющие на сборку проекта (опции конфигурации, флаги компилятора и т. д.).

https://habr.com/ru/companies/timeweb/articles/741868/

#cpp #programming

👉 @cpp_lib
👍4
Как два байта переслать: контрибьютим в KPHP

KPHP - компилятор для PHP. Он конвертирует PHP код в код на C++, компилируя который, ускоряет производительность в десятки раз. Это open-source проект, созданный ВКонтакте. Благодаря ему собирается огромный монолит ВКонтакте на 9 миллионов строк PHP кода в обычный бинарник, запуская который вы локально поднимаете полноценный ВКонтакте.

Цель
Я расскажу про добавление новых функций в runtime KPHP. Точнее про тернистую дорогу на пути.

https://habr.com/ru/articles/749792/

#cpp #programming

👉 @cpp_lib
👍4🤔1
Media is too big
VIEW IN TELEGRAM
C++ Full Course (FOUR HOUR All-in-One Tutorial for Beginners)

00:00 - Introduction
09:40 - User Input and Output
20:56 - using namespace std (Potential Problems)
30:38 - if Statement and Comparisons
37:41 - Comparing char with tolower
43:43 - User Input with getchar()
48:59 - else Clause and else if
59:14 - Nested if Statements
01:03:12 - Logical Operators
01:10:27 - booleans (The Truth Exposed)
01:22:47 - Switch Statement
01:31:28 - Defining a Function Prototype and Definition
01:37:29 - Function Returns and Arguments
01:45:24 - While Loop with Guessing Games
01:52:58 - Random Number Generation
02:02:44 - Multiple C++ File Compilation
02:10:05 - for Loops vs While Loops
02:16:53 - Decrementing for Loop (Count Down)
02:24:50 - Arrays and Looping
02:35:57 - Vectors
02:40:40 - Passing Arrays and Vectors to Functions
02:56:38 - Function Overloading
03:00:53 - Function Templates and Template Overloads
03:10:27 - Intro to Deques (Double Ended Queue)
03:14:45 - Reading and Writing to Files (ifstream and ofstream)
03:21:06 - Intro to Classes and Objects (Object Oriented Programming)
03:26:44 - Reading and Writing Custom Object Collection from File
03:36:06 - Custom Constructors
03:41:53 - Static Methods
03:46:47 - Stacks and Queues Shopping List Exercise

источник

#cpp #programming

👉 @cpp_lib
👍21
Самый быстрый и безопасный PNG декодер в мире

TL;DR: декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng (широко используемая реализация PNG декодера на C с открытым исходным кодом), C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust.

Декодирование PNG с помощью Wuffs обсуждалось на Hacker News №1, Hacker News №2, /r/programming, /r/rust и lobste.rs.

https://habr.com/ru/articles/751462/

#cpp #programming

👉 @cpp_lib
👍6
Что Должно Быть в Каждом FirmWare Pепозитории

В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые программные компоненты (кирпичики/SubSystems), которые могут пригодиться в практически любой сборке.

#cpp #programming

👉 @cpp_lib
👍2
Внутри STL: Строка

Можно подумать, что строка std::string (и все ее друзья из семейства std::basic_string) - это, по сути, вектор символов. Однако строки устроены иначе из-за специфических оптимизаций, допустимых для строк, но не для векторов.

https://devblogs.microsoft.com/oldnewthing/20230803-00/?p=108532

#cpp #programming

👉 @cpp_lib
👍51
Неопределённое поведение в C/C++ и приёмы против лома

Некоторое время назад в Интернете ходила статья о неопределённом поведении, просто бесившая коренную аудиторию Rust. Завсегдатаи С и C++ в ответ только бурчали, что кто-то просто не понимает Всех Тонкостей и Нюансов Их Светлейшего Языка. Как обычно, пришло время и мне постараться изо всех сил и вставить мои пять копеек в эту застарелую дискуссию.

Готовьтесь поговорить об Основной Проблеме языков C и C++, а также о Принципе Лома.

Rus https://habr.com/ru/articles/756000/

Eng https://thephd.dev/c-undefined-behavior-and-the-sledgehammer-guideline

#cpp #programming

👉 @cpp_lib
👍1🔥1
Обучения GoLang-разработке с постоплатой и гарантированное трудоустройство. Учись сейчас – плати, когда устроишься на работу. Не захотел работать в IT – ничего не должен! 💸

Старт нового потока по GoLang от школы IT Mentor уже в сентябре. Срок обучения 6-8 месяцев.
Ворвись в сферу высокооплачиваемого IT с поддержкой опытного ментора в течение 18 месяцев.

👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22

Выпускники школы IT-mentor зарабатывают от 150 тыс.руб.

Почему тебе точно нужно в школу IT-mentor?
Только актуальная инфа и востребованные стек технологий: Основы Go, Go Runtime, Concurrency, Frameworks, Tools, Testing, Базы данных, Оркестрация, Брокеры сообщений, и др.
Индивидуальная программа, заточенная под твой уровень знаний
Контроль знаний с обратной связью менторов
Работа на реальном проекте – при выпуске готовый кейс
Поддержка опытных менторов позволит подготовиться к собеседованиям и составить твое CVL, проведение тестовых собеседований - быть уверенным в результате.
Закрытое комьюнити с коллегами и чаты помогут оставаться в тренде.

Стань частью IT-сообщества!

А если хорошо знаешь английский, вообще nice🔥! Для тебя есть опция - трудоустройство в иностранную компанию и возможность релокации зарубеж.

👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Давай жми быстрее, мест осталось мало!
👍1👎1
Media is too big
VIEW IN TELEGRAM
C++ интервью с инженером Google

Посмотрите, как кто-то пытается решить задачу Closest Coin на C++ с помощью инженера Google. Это пробное интервью — смогут ли они найти решение?

источник

#cpp #programming

👉 @cpp_lib
👍2🔥1
Media is too big
VIEW IN TELEGRAM
Рассмотрим простенькие задачки по C++, где могут пригодиться побитовые логические операции.

источник

#cpp #programming

👉 @cpp_lib
🔥3👍1🥰1