Библиотека C/C++ разработчика | cpp, boost, qt
21K subscribers
1.57K photos
40 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
😅 Выгорали ли хоть раз за свою карьеру?

#memes
🗺️💼 Из Москвы в Дублин: опыт российского разработчика из Amazon

В этой статье я расскажу о культурных и профессиональных отличиях, с которыми мне пришлось столкнуться, переезжая из России в Латвию, а затем и в Ирландию. Надеюсь, мой опыт поможет вам понять, чего можно ожидать от такого серьезного шага.

Читать статью
🍔 Как установить точность вывода в консоль для конкретной переменной

Для этого можно использовать вы можете связать функцию std::setprecision с переменной, для которой хотите установить точность

std::setprecision — функция из библиотеки iomanip (STL), которая устанавливает точность для вывода чисел с плавающей точкой. В аргументе std::setprecision задаётся количество цифр, которые мы хотим вывести
😱 Почему префиксный инкремент быстрее чем постфиксный?

Для постфиксного итератора неявно выделяется дополнительная память для хранения промежуточной переменной
😱 Как не надо проверять размер массива в С++

• В статье обсуждается проблема использования sizeof для вычисления размера контейнеров и массивов в C++
• Рассматриваются различные способы решения проблемы
• Автор предлагает использовать std::size вместо устаревших sizeof-костылей и ArraySizeHelper'ов начиная с C++17

👉 Статья
🍔 Как преобразовать std::string в const char* или char*?

Если мы хотим передать std::string в функцию, которой требуется const char*, можно использовать .c_str()

Для получения неконстантной строки char*, вызываем .data(). Появилось в C++17, до этого можно было использовать &str[0]

‼️ Указатель становится недействительным, если строка уничтожается
🍔 Библиотека std::stacktrace

В C++23 появилась библиотека std::stacktrace для получения текущего стека вызовов функций,
а именно последовательность вызовов от точки входа main()

С помощью библиотеки можно посмотреть описание функции description() , исходный файл в котором находится функция source file() и номер строки source line()
🦾🧠🏋️Качаем мозги к лету!

Курс «Алгоритмы и структуры данных» для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.

➡️ Алгоритмы и структуры данных 35 990 ₽ 21 594

⭐️ Переходите и активируйте бесплатные вводные занятия курсаhttps://proglib.io/w/da6727d1

Вас ждут:

– 150 практических заданий и 47 видеолекций

– бессрочный доступ к обучению

– поддержка преподавателя в чате

А также очень харизматичный спикер из Яндекса 🙌🏻
🔮 std::exchange

std::exchange — функция добавленная в C++14. Она назначает новое значение первому аргументу, которое берёт из второго и возвращает старое значение первого аргумента

Если есть конструктор перемещения, то значение будет перемещено и не будет лишнего копирования

В отличие от std::swap, во второй аргумент ничего не перемешается, он остаётся без изменений
💣 Подборка крутых докладов по С++ за 2023 год

• Статья представляет подборку лучших докладов по С++ с прошлого сезона конференций

•Доклады охватывают различные темы, включая применение и развитие современного С++, безопасность кода и личностное развитие программиста

• Обсуждаются новые возможности C++23, которые меняют и улучшают работу программиста

• Рассматривается эволюция C++ и важность совместимости для дальнейшего успешного развития языка

👉 Ссылка
🔮 Семантические процессы в C++

В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if — это всегда if

Но когда мы говорим о семантике, мы сталкиваемся с необходимостью для компилятора что-то сделать или что-то выяснить: разрешить имя, инстанцировать шаблон, вывести тип, вычислить константное выражение. Можно сказать что в каждый такой момент мы стартуем некий процесс, развивающийся по своим правилам

Представляю доклад посвящен описанию взаимодействующих семантических процессов в языке, как с точки зрения внутренностей компилятора, так и с точки зрения стандарта языка
😱 Что такое ошибка сегментации?

Ошибка сегментации (или segmentation fault) — вид ошибок связанный с обращением к памяти, которая не принадлежит процессу. Это вспомогательный механизм, который не дает вам «испортить» память и внедрить трудноотлаживаемые ошибки памяти. Когда вы получаете segfault, вы знаете, что делаете что-то не так с памятью — обращаетесь к переменной, которая уже была освобождена, записываете в часть памяти, доступную только для чтения, и т. д. Ошибка сегментации по сути одинакова в большинстве языков, позволяющих работать с памятью, принципиальной разницы между ошибками сегментации в C и C++ нет
🧨 Как очистить stringstream?

Для очистки содержимого строкового потока можно использовать
m.str("");

или
m.str(std::string());

что может быть более эффективно, из-за того что не вызываем конструктор std::string(const char*)
🍔 nocc — распределенный компилятор для гигантских проектов на C++

Известно, что С++ проекты очень долго компилируются. ccache может спасти локально, но современный деплой состоит из изолированных контейнеров, TeamCity, билд-агентов и прочего — там ccache не поможет

Есть такая вещь, как distcc — распределенная компиляция, ускорение за счет множества серверных нод

nocc — аналог distcc, только значительно более быстрый, и это дало им колоссальный прирост скорости сборки в реальных условиях

В докладе рассказывается про архитектуру, про особенности имплементации, про отличия от distcc и, конечно же, как использовать nocc в ваших С++ проектах

🔮 Содержание
• Распределенная компиляция PHP
• Как работает распределенная компиляция
• Компиляция плюсовых файлов на сервере
• Зеркалирование файловой структуры клиента на сервере
• Кэширование и оптимизация
• Заголовки и метаформатирование
• Применение вне КПП
• Проблемы с сервером
• Обновление серверов
• Обсуждение оптимизации компиляции