TGViewer
Channel Public Channel
Библиотека C/C++ разработчика | cpp, boost, qt

Библиотека C/C++ разработчика | cpp, boost, qt

@cppproglib

Все самое полезное для плюсовика и сишника в одном канале.

Как запустить своего ии-агента: https://clc.to/tvpmDQ

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

Обратная связь: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

#WXSSA
Subscribers
16.8K
Photos
2.3K
Videos
74
Links
4.6K

Showing posts older than #4016 · Back to latest

Older Posts 20 shown
Post #4015 5.95K
lmdeploy

LMDeploy — это набор инструментов для сжатия, развертывания и обслуживания LLM.

Открыть страницу
  • 👍 29
  • ❤ 4
  • 😁 3
  • 👏 1
Post #4014 5.54K
Паттерн Strategy

Паттерн Strategy — это паттерн проектирования, который позволяет определять семейства связанных алгоритмов и делать их взаимозаменяемыми.
Это дает возможность выбирать конкретный алгоритм во время выполнения программы.

Основная идея паттерна Strategy заключается в том, чтобы вынести алгоритмы в отдельные классы-стратегии и передавать нужную стратегию в клиентский код.

Это паттерн используется, когда:
— Нужно использовать разные варианты одного и того же алгоритма в разных ситуациях.
— Нужно легко добавлять новые стратегии, не меняя существующий клиентский код.
— Нужно избавиться от условных операторов, выбирающих алгоритм.
#код
  • 👍 19
  • 🤯 5
  • ❤ 2
Post #4013 5.28K
Что такое рефакторинг?

Рефакторинг — это процесс изменения внутренней структуры программы без изменения ее внешнего поведения.

Рефакторинг кода может применяться в следующих ситуациях:

— Улучшение читаемости и понятности кода.
— Оптимизация производительности.
— Устранение дублирования кода.

Рефакторинг особенно важен при работе над большими проектами, где код многократно изменяется и расширяется. Он позволяет поддерживать кодбейз чистым, современным и масштабируемым.
#вопросы_с_собеседований
  • 👍 10
  • 🔥 2
Post #4012 5.52K
std::tuple

std::tuple — это шаблонный класс, представляющий собой фиксированный набор элементов разных типов. Проще говоря, удобный инструмент для упаковки данных разных типов

Элементы tuple инициализируются в конструкторе и доступны только для чтения после создания.

tuple часто используется в комбинации с tie для присваивания кортежа переменным.
#код
  • 👍 4
  • 🤩 1
Post #4011 5.25K
Сколько лет опыта по вашему должен иметь мидл?
#интерактив
Post #4010 6.05K
Очередной #дайджест по С++:

✍️ Что в DI-Контейнере твоем, С++? Пробуем написать
Разбор DI-контейнеров на C++.

✍️ Установка OpenCV под Windows
В данной статье описан способ сборки OpenCV из исходников с помощью cmake и Microsoft Visual Studio, и пример запуска своего проекта на cmake.

✍️ Краткий обзор нововведений C++23: deducing this
Документ «deducing this», принятый в последний стандарт C++, вводит новый, третий тип методов классов, сочетающий в себе свойства двух уже существующих: нестатических и статических, открывающий перед нами новые горизонты.

✍️ Регулятор нагрузки
Данный регулятор управляется при помощи arduino и симисторного выхода.

✍️ Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет?
С каждым релизом PHP становится всё быстрее, а при включении JIT (Just-In-Time) компиляции достигает почти отметок того же C.
  • 👍 7
Post #4009 5.13K
Ключевое слово const

Ключевое слово const используется для создания констант и неизменяемых объектов.

— Const для объявления переменных: запрещает изменение объекта после инициализации.

— Const указатели и ссылки: указатель или ссылка на константный объект. Нельзя изменить объект через них, только читать.

— Функции, возвращающие const значения: гарантируют, что функция не изменит объект.

— Const члены класса: нельзя изменить через объект класса.

— Const методы класса: не меняют члены класса. Часто применяются к getter-методам.
#код
  • 👍 8
Post #4008 5.01K
Статически подсчитываем количество экземпляров шаблона с нулевым временем выполнения и даже без использования стандартной библиотеки.

Смотреть код
  • 👍 4
Post #4007 5.83K
Позднее связывание

Позднее связывание (или динамическое связывание) — это концепция в C++, которая связывает вызов метода с его реализацией во время выполнения программы, а не на этапе компиляции. Это позволяет достичь полиморфизма и инкапсуляции, так как объекты могут вызывать методы, которые будут разрешены на основе их фактического типа, а не только статического типа.

В C++ позднее связывание реализуется с помощью виртуальных функций и ключевого слова virtual. Виртуальные функции определяются в базовом классе и могут быть переопределены в производных классах. Когда вы вызываете виртуальную функцию через указатель или ссылку на базовый класс, вызывается соответствующая реализация в производном классе на основе реального типа объекта.
#код
  • 👍 10
Post #4006 5.2K
Можно ли выбрасывать exception из конструктора? Какие поля будут сконструированы, какие поля будут разрушены?

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

Если исключение выбрасывается из конструктора, то все поля, которые были успешно сконструированы до момента выброса исключения, будут корректно разрушены. Это гарантируется механизмом исключений в C++.

Важно помнить, что только те поля, которые были успешно сконструированы, будут разрушены. Если исключение выбрасывается в процессе конструирования поля, то это поле не будет разрушено, так как его конструктор не был успешно завершен.
#вопросы_с_собеседований
  • 👍 8
Post #4005 5.38K
std::midpoint

std::midpoint — это функция, которая вычисляет среднюю точку между двумя целыми числами, числами с плавающей точкой или указателями. Она возвращает половину суммы a и b, при этом не происходит переполнения.

Если a и b имеют целочисленный тип и сумма является нечетной, то результат округляется в сторону a. Если a и b имеют тип с плавающей точкой, то происходит не более одной неточной операции.
#код
  • 👍 22
Post #4004 5.34K
Новая статическая идиома constexpr std::integral_constant

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

Читать статью
  • 👍 7
  • 🎉 2
Post #4003 5.25K
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.
#код
  • 👍 10
  • ❤ 1
  • 🔥 1
Post #4002 4.8K
Очередной #дайджест по С++:

✍️ Можно ли доверить компилятору оптимизацию вашего кода?
Автор объясняет общую структуру компиляторов, пригодную для оптимизации статических языков, таких как Rust или C++.

✍️ Проверка компилятора GCC 13 с помощью PVS-Studio
Цель — обнаружить ошибки в коде GCC с помощью анализатора PVS-Studio.

✍️ Почему C++ не устаревает
Что же делает язык с 40-летней историей таким популярным и почему сегодня он только укрепляет позиции?

✍️ Как я присоединился к сообществу bug 323
Это история о баге, от которого хочется рвать на себе волосы.

✍️ Приятный разговор о знаковых и беззнаковых целых числах (с обжаркой Google)
Правильный выбор целочисленного типа — плохо изученная тема, которая привела к стандартизации проблемных интерфейсов в C++, плохо разработанным требованиям безопасности и путанице среди разработчиков.
  • 👍 2
  • 🔥 2
  • 🎉 1
Post #4000 4.8K
Cache miss

Cache miss (промах в кэше) в C++ относится к ситуации, когда процессор не может найти нужные данные в кэше, и должен обратиться к более медленной памяти (например ОЗУ), для получения этих данных.

Когда код выполняется на процессоре, процессор пытается загрузить данные или инструкции из кэша первого, второго или третьего уровня (L1, L2, L3 и так далее), прежде чем обращаться к оперативной памяти. Если данные или инструкции отсутствуют в кэше, возникает кэш-промах (cache miss), и процессор должен загрузить их из оперативной памяти, что занимает гораздо больше времени, чем доступ к данным в кэше.
#код
  • 👍 10
  • ❤ 2
Post #3999 4.66K
Как вы предпочитаете работать: дистанционно или в офисе?
#интерактив
Post #3997 5.05K
Многопоточность на C++

Поток исполнения — независимая последовательность выполнения инструкций внутри одного процесса с общей памятью, но собственными регистрами и стеком.

Смотреть статью
  • 👍 7
Post #3996 5.15K
Мocking

Мокирование — это процесс создания имитаций (моков) объектов или компонентов программы, чтобы тестировать код без необходимости использовать реальные зависимости.

Основная цель мокирования в тестировании — изолировать код, который вы хотите протестировать, от внешних зависимостей, таких как базы данных, сетевые сервисы или другие сложные компоненты. Вместо использования реальных объектов или служб вы создаете моки, которые имитируют поведение этих зависимостей, и управляете этим поведением в рамках ваших тестов.
#код
  • ❤ 7
  • 👍 4
Post #3995 4.76K
Проверить, найден ли элемент в массиве С++

В С++ вы должны использовать std::findи проверить, указывает ли результирующий указатель на конец диапазона.
#вопросы_с_собеседований
  • 🔥 8
  • 👍 2
Post #3994 5.23K
(Жизненный) cовет от создателя C++

Создатель C++, Бьёрн Страуструп, делится ценными жизненными советами, которыми, скажем прямо, могли бы воспользоваться все разработчики, независимо от их многолетнего опыта. По словам Бьерна, «вы не можете просто писать код», вам нужно развивать больше навыков, если вы хотите стать всесторонним успешным разработчиком. Посмотрите это неизданное интервью, если вы хотите получить вдохновение и рекомендации на своем пути разработчика от одного из OG.

Смотреть видео
  • ❤ 9
  • 🤔 6
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →