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

В этой статье я покажу и объясню странную на вид ошибку, связанную с tuple_size_v и инстанцированием для символа \n. Вы увидите некоторые хитрые места в SFINAE и то, как компилятор строит набор разрешений перегрузки.

https://www.cppstories.com/2022/sfinea-immediate-context/

#cpp #programming

👉 @cpp_lib
👍1
20 небольших, но полезных функций C++20

С++20 - это огромный и многофункциональный продукт. Вот лишь некоторые из них: Modules, Coroutines, Concepts, Ranges, Calendar & Timezone, Formatting library.

Но, как вы понимаете, это еще не все.

В зависимости от того, как считать, в C++20 появилось около 80 библиотечных функций и 70 изменений в языке, так что есть о чем рассказать :)

В этой статье я покажу вам 20 небольших возможностей C++20, которые очень удобно и полезно знать. Десять элементов языка и еще десять для стандартной библиотеки. Большинство из них сопровождаются интересным примером.

https://www.cppstories.com/2022/20-smaller-cpp20-features/

#cpp #programming

👉 @cpp_lib
👍3
Оптимизация GUI на Qt

Как правило, при создании desktop-приложений на платформе Qt не возникает проблем, связанных с медленностью работы GUI. Qt – платформа достаточно надежная, неплохо вылизанная по всем параметрам, в том числе и по скорости работы. Однако всё же иногда бывают ситуации, когда из-за обилия виджетов графический интерфейс немного притормаживает, и это печально). В этой статье я приведу один частный пример простого графического интерфейса и покажу, как за два шага можно сначала ускорить его в 11 раз, а потом и в целых 34 раза. Вдобавок к этому, я постараюсь немного осветить механизм принятия решения для таких оптимизационных задач, постараюсь показать направление мыслей для правильного решения. Поехали!

https://habr.com/ru/post/672962/

#cpp #programming

👉 @cpp_lib
👍4
Правка чужого кода

Для одного проекта мне понадобился просмотрщик памяти в DOS. В идеале хотелось бы иметь редактор памяти, чтобы в нём был поиск по ключевым словам, перемещение к заданному адресу. Но для старта мне было бы достаточно хотя бы возможность просмотра всего мегабайта доступной «нижней» памяти.

https://habr.com/ru/company/timeweb/blog/697688/

#cpp #programming

👉 @cpp_lib
👍2
std::atomic_thread_fence

std::atomic_thread_fence — это функция, которая устанавливает порядок синхронизации памяти для не атомарных и расслабленных атомарных доступов, как указано в аргументе order, без связанной атомарной операции.

std::atomic_thread_fence может использоваться для обеспечения правильного порядка чтения и записи в многопоточных программах.

В этом примере два потока выполняют функции write_x_then_y и read_y_then_x:

- write_x_then_y устанавливает значение атомарной переменной x равным 1, затем вызывает std::atomic_thread_fence с аргументом std::memory_order_release и устанавливает значение атомарной переменной y равным 1.

- read_y_then_x считывает значение атомарной переменной y, затем вызывает std::atomic_thread_fence с аргументом std::memory_order_acquire и считывает значение атомарной переменной x.

#cpp #programming

👉 @cpp_lib
👍4
Media is too big
VIEW IN TELEGRAM
Привет 🖐

За несколько дней мои матрицы координально изменились, в момент написания предыдущего поста, матрицы поддерживались лишь стандартом С++20 и выше, на данный момент библиотека настроена и собирается на С++11 С++14 С++17 С++20 С++23

Была пофикшена куча багов, как неочевидных с итераторами, так и простых опечаток.

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

Как раз для этого я создал шаблон cmake проекта MTL (Matrix Template Library) с настроенными зависимости и подтягиванием исходников.

Шаблон можно скачать и попробовать по ссылке, все инструкции того, как настроить проект под себя есть в README .md

#cpp #programming

👉 @cpp_lib
👍3
Управление зависимостями с помощью Meson + WrapDB

В одной из недавних статей в блоге рассказывалось о том, как собирать и управлять зависимостями с помощью CMake и FetchContent. В качестве примера использовалось простое GUI-приложение, использующее мультимедийные библиотеки SFML и инструментарий виджетов Dear ImGui с использованием соответствующей библиотеки-обертки. Для сравнения проделаем то же самое с Meson.

FetchContent_Declare(
sfml
URL https://github.com/SFML/SFML/archive/refs/tags/2.5.1.zip
URL_MD5 2c4438b3e5b2d81a6e626ecf72bf75be
)
add_subdirectory(sfml)


https://nibblestew.blogspot.com/2021/05/managing-dependencies-with-meson-wrapdb.html


#cpp #programming

👉 @cpp_lib
👍1
Минимально жизнеспособный декларативный графический интерфейс на языке C++

https://ossia.io/posts/minimum-viable/

#cpp #programming

👉 @cpp_lib
👍3
Изучайте C++: Введение для начинающих

C++ - это мощный, универсальный и широко распространенный язык программирования, который остается актуальным в мире разработки программного обеспечения уже более трех десятилетий. В этой небольшой заметке мы познакомим вас с основами языка C++ и поможем заложить прочный фундамент для начала вашего пути в программировании.

https://dev.to/godot/learn-c-an-introduction-for-beginners-2m06

#cpp #programming

👉 @cpp_lib
👍3
C++ — это замечательно, и вот почему

C++ — один из самых непонятных языков в современной поп-культуре разработчиков программного обеспечения. Люди часто сравнивают его с C, потому что это "низкоуровневый" язык. Следовательно, он получил репутацию эзотерического языка, который интересует только параноиков производительности. Это далеко не так. Я программирую на C++ в качестве основного языка уже некоторое время, и опыт разработчика на самом деле очень хорош — гораздо лучше, чем можно было себе представить.

В этой статье мне хотелось бы развенчать некоторые распространенные мифы о C++, которые я слышал до того, как начал его использовать. Затем расскажу о реальных супервозможностях, которые предоставляет C++ и которых нет у большинства других языков.

https://dev.to/vnjogani/c-is-awesome-here-s-why-1be0

#cpp #programming

👉 @cpp_lib
🔥6👍1👎1🤔1🥱1
Исследование различий между C++ и C: почему C++ преобладает

Если говорить о языках программирования, то C и C++ - это два основных языка, которые формировали мир разработки программного обеспечения на протяжении десятилетий. Оба языка известны своей эффективностью, универсальностью и мощью. Однако во многих областях С++ уверенно занимает лидирующие позиции, что делает его более предпочтительным выбором для современной разработки программного обеспечения. В сегодняшней статье мы рассмотрим различия между C++ и C и узнаем, почему C++ часто считается лучшим выбором.

https://dev.to/idurar/exploring-the-differences-between-c-and-c-why-c-prevails-2g8g

#cpp #programming

👉 @cpp_lib
👍5👎4🥱1🖕1
Karl Åkerblom: Краткий обзор Tracy Profiler

Карл вкратце расскажет о профилировании инструментов в Tracy Profiler. Он также поделится своими впечатлениями после внедрения этой системы в работу; расскажет о некоторых приятных сюрпризах и о трудностях, с которыми он столкнулся на этом пути.

https://www.youtube.com/watch?v=W9U5y5jjQDM

#cpp #programming

👉 @cpp_lib
👍1
Инструменты и библиотеки для создания собственного игрового движка на C++

Вы хотите узнать больше об игровых движках и написать их самостоятельно? Это здорово! Чтобы помочь вам на этом пути, вот некоторые рекомендации по библиотекам и зависимостям C++, которые помогут вам начать работу.

https://pikuma.com/blog/how-to-make-your-own-cpp-game-engine

#cpp #programming

👉 @cpp_lib
👍91