SFINAE, непосредственный контекст, оператор << и '\n'
В этой статье я покажу и объясню странную на вид ошибку, связанную с tuple_size_v и инстанцированием для символа \n. Вы увидите некоторые хитрые места в SFINAE и то, как компилятор строит набор разрешений перегрузки.
https://www.cppstories.com/2022/sfinea-immediate-context/
#cpp #programming
👉 @cpp_lib
В этой статье я покажу и объясню странную на вид ошибку, связанную с 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
С++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
Как правило, при создании 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
Для одного проекта мне понадобился просмотрщик памяти в DOS. В идеале хотелось бы иметь редактор памяти, чтобы в нём был поиск по ключевым словам, перемещение к заданному адресу. Но для старта мне было бы достаточно хотя бы возможность просмотра всего мегабайта доступной «нижней» памяти.
https://habr.com/ru/company/timeweb/blog/697688/
#cpp #programming
👉 @cpp_lib
👍2
std::atomic_thread_fence
В этом примере два потока выполняют функции
-
-
#cpp #programming
👉 @cpp_lib
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
За несколько дней мои матрицы координально изменились, в момент написания предыдущего поста, матрицы поддерживались лишь стандартом С++20 и выше, на данный момент библиотека настроена и собирается на С++11 С++14 С++17 С++20 С++23
Была пофикшена куча багов, как неочевидных с итераторами, так и простых опечаток.
Могу сказать, что тем, кому лень писать новые матрицы для своих школьных проектов можно смело использовать данную библиотеку, думаю boost использовать непозволительно, а вот библиотеку другого участника School21 вполне можно.
Как раз для этого я создал шаблон cmake проекта MTL (Matrix Template Library) с настроенными зависимости и подтягиванием исходников.
Шаблон можно скачать и попробовать по ссылке, все инструкции того, как настроить проект под себя есть в README .md
#cpp #programming
👉 @cpp_lib
👍3
The new static constexpr std::integral_constant idiom
https://www.foonathan.net/2023/08/static-constexpr-integral_constant/
#cpp #programming
👉 @cpp_lib
https://www.foonathan.net/2023/08/static-constexpr-integral_constant/
#cpp #programming
👉 @cpp_lib
www.foonathan.net
The new static constexpr std::integral_constant idiom
The size of std::array<T, N> is known at compile-time given the type.
Yet it only provides a regular .size() member function:
template <typename T, std::size_t N>
struct array {
constexpr std::size_t size() const {
return N;
}
};
This is annoying…
Yet it only provides a regular .size() member function:
template <typename T, std::size_t N>
struct array {
constexpr std::size_t size() const {
return N;
}
};
This is annoying…
👍3
Управление зависимостями с помощью Meson + WrapDB
В одной из недавних статей в блоге рассказывалось о том, как собирать и управлять зависимостями с помощью CMake и FetchContent. В качестве примера использовалось простое GUI-приложение, использующее мультимедийные библиотеки SFML и инструментарий виджетов Dear ImGui с использованием соответствующей библиотеки-обертки. Для сравнения проделаем то же самое с Meson.
https://nibblestew.blogspot.com/2021/05/managing-dependencies-with-meson-wrapdb.html
#cpp #programming
👉 @cpp_lib
В одной из недавних статей в блоге рассказывалось о том, как собирать и управлять зависимостями с помощью 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
Blogspot
Managing dependencies with Meson + WrapDB
A recent blog post talked about how to build and manage dependencies with CMake and FetchContent . The example that they used was a simple ...
👍1
Минимально жизнеспособный декларативный графический интерфейс на языке C++
https://ossia.io/posts/minimum-viable/
#cpp #programming
👉 @cpp_lib
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
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
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
Если говорить о языках программирования, то 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
Карл вкратце расскажет о профилировании инструментов в Tracy Profiler. Он также поделится своими впечатлениями после внедрения этой системы в работу; расскажет о некоторых приятных сюрпризах и о трудностях, с которыми он столкнулся на этом пути.
https://www.youtube.com/watch?v=W9U5y5jjQDM
#cpp #programming
👉 @cpp_lib
YouTube
Karl Åkerblom: A quick look at Tracy Profiler
Karl will give you a quick look at the instrumentation profiling of Tracy Profiler. He also shares his impressions after adopting it at work; some pleasant surprises and some bumps in the road he encountered along the way.
Recorded at StockholmCpp 0x29:…
Recorded at StockholmCpp 0x29:…
👍1
Инструменты и библиотеки для создания собственного игрового движка на C++
Вы хотите узнать больше об игровых движках и написать их самостоятельно? Это здорово! Чтобы помочь вам на этом пути, вот некоторые рекомендации по библиотекам и зависимостям C++, которые помогут вам начать работу.
https://pikuma.com/blog/how-to-make-your-own-cpp-game-engine
#cpp #programming
👉 @cpp_lib
Вы хотите узнать больше об игровых движках и написать их самостоятельно? Это здорово! Чтобы помочь вам на этом пути, вот некоторые рекомендации по библиотекам и зависимостям C++, которые помогут вам начать работу.
https://pikuma.com/blog/how-to-make-your-own-cpp-game-engine
#cpp #programming
👉 @cpp_lib
👍9❤1