std::decay_t — один из самых полезных type traits в C++. Он имитирует процесс передачи параметра по значению, «разрушая» исходный тип.
🔄 Что именно делает decay_t?
• Убирает cv-квалификаторы
• Превращает ссылки в соответствующие типы без ссылок
• Преобразует массивы в указатели
• Преобразует функции в указатели на функции
💻 Пример:
🚀 Где это используется?
• В шаблонном программировании для упрощения работы с типами
• В std::make_shared и std::make_unique для определения типа создаваемого объекта
• При написании обобщенного кода, где нужна правильная дедукция типов
🔍 И да, название «decay» («разрушение») действительно отражает суть — тип «разрушается» до базового представления!
🔄 Что именно делает decay_t?
• Убирает cv-квалификаторы
• Превращает ссылки в соответствующие типы без ссылок
• Преобразует массивы в указатели
• Преобразует функции в указатели на функции
💻 Пример:
#include <type_traits>
#include <iostream>
int main() {
// const int& -> int
static_assert(std::is_same_v<std::decay_t<const int&>, int>);
// int[10] -> int*
static_assert(std::is_same_v<std::decay_t<int[10]>, int*>);
// void(int) -> void(*)(int)
static_assert(std::is_same_v<std::decay_t<void(int)>, void(*)(int)>);
std::cout << "All assertions passed!" << std::endl;
}
🚀 Где это используется?
• В шаблонном программировании для упрощения работы с типами
• В std::make_shared и std::make_unique для определения типа создаваемого объекта
• При написании обобщенного кода, где нужна правильная дедукция типов
🔍 И да, название «decay» («разрушение») действительно отражает суть — тип «разрушается» до базового представления!
Кто еще считает, что C++ следует разделить на два языка? «C++ Classic» для системного программирования и «C++ Modern» для всего остального?
Ваши мнения пишите в комментариях 👇
Библиотека C/C++ разработчика #междусобойчик
Ваши мнения пишите в комментариях 👇
Библиотека C/C++ разработчика #междусобойчик
С++ Книги - канал для скачивания книг по C++
Что в нашем канале:
1. Книги по C++
2. Много книг на русском языке
3. Описания книг, автор, год выпуска
4. Все книги можно скачать в 2 клика.
5. Всё, никакой другой воды.
Подписывайтесь на нас: @download_c_books
Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2Vtzqx9ZqUA
Что в нашем канале:
1. Книги по C++
2. Много книг на русском языке
3. Описания книг, автор, год выпуска
4. Все книги можно скачать в 2 клика.
5. Всё, никакой другой воды.
Подписывайтесь на нас: @download_c_books
Реклама. Киренкина Марина Дмитриевна, ИНН 345702417736. Erid 2Vtzqx9ZqUA
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Быстрая навигация по объявлениям и определениям
🤔 Проблема:
При работе с большими C++ проектами постоянно возникает необходимость перемещаться между объявлениями (в заголовочных файлах) и определениями (в .cpp файлах). Ручной поиск занимает время и снижает продуктивность.
🎯 Решение:
Используйте клавишу F12 (или Ctrl+клик) для мгновенного перехода к определению функции/класса/переменной.
✅ Работает в:
• VSCode: F12 или Ctrl+клик
• CLion: Ctrl+B или Ctrl+клик
• Visual Studio: F12 или Ctrl+клик
📝 Для переключения между заголовочным файлом и его реализацией:
• VSCode: Alt+O (с установленным C/C++ расширением)
• CLion: Ctrl+Alt+Home
• Visual Studio: Alt+O
Уровень полезности: ⭐️⭐️⭐️⭐️⭐️ (обязательно к использованию для любого C++ разработчика)
🤔 Проблема:
При работе с большими C++ проектами постоянно возникает необходимость перемещаться между объявлениями (в заголовочных файлах) и определениями (в .cpp файлах). Ручной поиск занимает время и снижает продуктивность.
🎯 Решение:
Используйте клавишу F12 (или Ctrl+клик) для мгновенного перехода к определению функции/класса/переменной.
✅ Работает в:
• VSCode: F12 или Ctrl+клик
• CLion: Ctrl+B или Ctrl+клик
• Visual Studio: F12 или Ctrl+клик
📝 Для переключения между заголовочным файлом и его реализацией:
• VSCode: Alt+O (с установленным C/C++ расширением)
• CLion: Ctrl+Alt+Home
• Visual Studio: Alt+O
Уровень полезности: ⭐️⭐️⭐️⭐️⭐️ (обязательно к использованию для любого C++ разработчика)
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
#️⃣🔄 Асинхронность в Unity: лучше или хуже, чем корутины?
Unity развивается, и старые добрые корутины постепенно уступают место асинхронным методам.
Мы привыкли к StartCoroutine(), но стоит ли переходить на Task? Разбираем плюсы и минусы каждого подхода.
📎 Читать статью
🐸 Библиотека шарписта
Unity развивается, и старые добрые корутины постепенно уступают место асинхронным методам.
Мы привыкли к StartCoroutine(), но стоит ли переходить на Task? Разбираем плюсы и минусы каждого подхода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
Сегодня отмечаем вклад девушек-разработчиков, аналитиков, тестировщиков, тимлидов и всех, кто влюблён в код. Без вас IT не было бы таким, каким мы его знаем. С праздником, коллеги 💐
Женщины оставили огромный след в истории IT. Если вам кажется, что программирование — это исключительно «мужская территория», взгляните, вот лишь несколько легендарных женщин:
🔹 Ада Лавлейс — автор первой компьютерной программы ещё в 19 веке.
🔹 Грейс Хоппер — создала первый компилятор и популяризировала термин «баг».
🔹 Барбара Лисков — её принцип Liskov Substitution является основой ООП, в том числе в Java.
🔹 Эдит Кларк — первая женщина-инженер, внесшая вклад в вычислительные методы в энергетике.
🔹 Маргарет Гамильтон — разработала софт для посадки «Аполлона-11» на Луну.
А это только малая часть. В статье собраны ещё больше вдохновляющих историй.
Please open Telegram to view this post
VIEW IN TELEGRAM
Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.
IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии
Библиотека программиста — новости из мира IT и технологий
Книги для программистов — самые годные книги по любым языкам и стекам
IT-мемы — мемы про жизу айтишника
Proglib Academy — обучение и курсы, чтобы стать топовым специалистом
Азбука айтишника — азы из мира разработки
Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ
Библиотека фронтендера — все о JS, React, Angular и не только
Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin
Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься
Библиотека тестировщика — самое интересное о том, как крашить код
🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go
#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#
🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE
🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel
🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask
☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java
📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science
🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++
Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Telegram
Telega.in
Платформа для запуска рекламы в Telegram: продвигайтесь в проверенных каналах и чатах.
Forwarded from Вакансии по C++ — си-плюс-плюс, cpp, Си, C, STL, Boost
Удаленно (Москва)
#c_plus@proglib_jobs
«БПЦ Банковские Технологии» — компания, которая является разработчиком и дистрибьютором семейства продуктов SmartVista, которые обеспечивают поддержку и оптимизацию бизнес-процессов в сфере платежей.
Требования:
• Экспертное знание C/C++
• Желание писать на Cи
• Опыт отладки приложений и системных сервисов
• Алгоритмическая подготовка
• Опыт разработки на Unix платформах
Please open Telegram to view this post
VIEW IN TELEGRAM
😁 Библиотека MBASE
MBASE — библиотека позволяющая интегрировать локальные языковые модели в свои приложения.
💡 MBASE SDK предлагает неблокирующую библиотеку для LLM-инференса, построенную поверх llama.cpp, которая решает эти проблемы.
❗️ Ключевые моменты:
• неблокирующий TextToText и Embedder интерфейсы для плавной интеграции в приложения;
• поддержка популярных моделей (Phi, Deepseek, Llama, Qwen и др.);
• OpenAI-совместимый сервер с возможностью обслуживания нескольких моделей одновременно.
Основной фокус — позволить разработчикам интегрировать локальные LLM в высокопроизводительные приложения без замедления основного потока выполнения программы, изменяя само понятие «локального LLM-инференса».
Особенно актуально для разработчиков игр, серверных приложений и других систем, где критична производительность и нельзя допустить блокировку основного потока программы.
Даже с мощной GPU загрузка модели или операции кодирования/декодирования могут приостанавливать работу приложения — MBASE обрабатывает эти операции параллельно, предоставляя синхронизированные коллбэки, чтобы вам не пришлось беспокоиться о проблемах параллельного программирования.
MBASE — библиотека позволяющая интегрировать локальные языковые модели в свои приложения.
💡 MBASE SDK предлагает неблокирующую библиотеку для LLM-инференса, построенную поверх llama.cpp, которая решает эти проблемы.
❗️ Ключевые моменты:
• неблокирующий TextToText и Embedder интерфейсы для плавной интеграции в приложения;
• поддержка популярных моделей (Phi, Deepseek, Llama, Qwen и др.);
• OpenAI-совместимый сервер с возможностью обслуживания нескольких моделей одновременно.
Основной фокус — позволить разработчикам интегрировать локальные LLM в высокопроизводительные приложения без замедления основного потока выполнения программы, изменяя само понятие «локального LLM-инференса».
Особенно актуально для разработчиков игр, серверных приложений и других систем, где критична производительность и нельзя допустить блокировку основного потока программы.
Даже с мощной GPU загрузка модели или операции кодирования/декодирования могут приостанавливать работу приложения — MBASE обрабатывает эти операции параллельно, предоставляя синхронизированные коллбэки, чтобы вам не пришлось беспокоиться о проблемах параллельного программирования.
🔄 Мгновенное переименование символов с умным рефакторингом
🤔 Проблема:
Переименование функций, переменных или классов в C++ проектах может быть рискованным — нужно найти все места использования и не забыть изменить связанные конструкции.
🎯 Решение:
Умное переименование (Rename Refactoring) — одна кнопка для безопасного изменения имени во всём проекте!
✅ Комбинации клавиш:
VSCode: F2
CLion: Shift+F6
Visual Studio: Ctrl+R, Ctrl+R (двойное нажатие)
📝 Процесс:
• Установите курсор на имя переменной/функции/класса
• Нажмите соответствующую комбинацию клавиш
• Введите новое имя
• Нажмите Enter для применения изменений
🤔 Проблема:
Переименование функций, переменных или классов в C++ проектах может быть рискованным — нужно найти все места использования и не забыть изменить связанные конструкции.
🎯 Решение:
Умное переименование (Rename Refactoring) — одна кнопка для безопасного изменения имени во всём проекте!
✅ Комбинации клавиш:
VSCode: F2
CLion: Shift+F6
Visual Studio: Ctrl+R, Ctrl+R (двойное нажатие)
📝 Процесс:
• Установите курсор на имя переменной/функции/класса
• Нажмите соответствующую комбинацию клавиш
• Введите новое имя
• Нажмите Enter для применения изменений
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека питониста | Python, Django, Flask
📝 Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году
Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.
В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.
📄 Прочитайте статью и укрепите свои знания — https://proglib.io/sh/1uYAygzIxr
Библиотека питониста
Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.
В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.
📄 Прочитайте статью и укрепите свои знания — https://proglib.io/sh/1uYAygzIxr
Библиотека питониста
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
✅ Чек-лист: Линейные структуры данных в C++
Линейные структуры данных — фундамент программирования на C++. Правильный выбор структуры может значительно повысить эффективность вашего кода.
🎯 Векторы (std::vector)
✓ Используйте
✓ Применяйте
✓ Доступ по индексу выполняется за O(1) с помощью оператора []
✓ Используйте at() вместо [] для проверки границ массива
🎯 Списки (std::list)
✓ Отдавайте предпочтение при частых вставках/удалениях в середине
✓ Используйте
✓ Помните, что прямой доступ по индексу невозможен — только итерация
✓ Двунаправленные итераторы позволяют двигаться как вперед, так и назад
🎯 Очереди и стеки (std::queue, std::stack)
✓ Стек (LIFO): используйте
✓ Очередь (FIFO): применяйте
✓ Функция
✓ Обе структуры являются адаптерами и построены на других контейнерах
🎯 Массивы (std::array)
✓ Используйте для данных фиксированного размера, известного на этапе компиляции
✓ Более эффективны чем векторы для неизменяемых данных
✓ Поддерживают STL-алгоритмы (sort, find и др.)
✓ Проверяйте границы с функцией
🤫 Правильный выбор структуры данных может ускорить ваш без изменения алгоритма.
Линейные структуры данных — фундамент программирования на C++. Правильный выбор структуры может значительно повысить эффективность вашего кода.
🎯 Векторы (std::vector)
✓ Используйте
reserve()
для предварительного выделения памяти, когда примерно известен размер✓ Применяйте
push_back()
для добавления элементов и pop_back() для удаления с конца✓ Доступ по индексу выполняется за O(1) с помощью оператора []
✓ Используйте at() вместо [] для проверки границ массива
🎯 Списки (std::list)
✓ Отдавайте предпочтение при частых вставках/удалениях в середине
✓ Используйте
splice()
для эффективного перемещения элементов между списками✓ Помните, что прямой доступ по индексу невозможен — только итерация
✓ Двунаправленные итераторы позволяют двигаться как вперед, так и назад
🎯 Очереди и стеки (std::queue, std::stack)
✓ Стек (LIFO): используйте
push()
для добавления и pop()
для извлечения✓ Очередь (FIFO): применяйте
push()
для добавления и pop()
для извлечения✓ Функция
front()
позволяет посмотреть первый элемент без удаления✓ Обе структуры являются адаптерами и построены на других контейнерах
🎯 Массивы (std::array)
✓ Используйте для данных фиксированного размера, известного на этапе компиляции
✓ Более эффективны чем векторы для неизменяемых данных
✓ Поддерживают STL-алгоритмы (sort, find и др.)
✓ Проверяйте границы с функцией
at()
во избежание ошибок доступа🤫 Правильный выбор структуры данных может ускорить ваш без изменения алгоритма.
Forwarded from Proglib.academy | IT-курсы
Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё.
✓ Почему все считают, что программисты — математики
✓ В каких сферах разработки можно вообще не знать математику
✓ Где хватит готовых библиотек, а где придётся разбираться в формулах
✓ Какие области программирования требуют мощного математического бэкграунда
✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science
✓ Топ книг, которые помогут понять и даже полюбить математику
Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
sysconf 2025 — конференция по системному программированию от создателей C++ Russia и DevOops
📅 22 марта в Москве + онлайн
На конференции не будет абстрактных рассуждений — только разбор реальных кейсов, разрезка бинарников, дебаггинг и хардкор.
Доклады, на которые стоит обратить внимание:
→ Компиляторные технологии в верификации аппаратного обеспечения — Константин Владимиров
→ Устройство многопоточного рантайма движков ВКонтакте — Никита Костливцев
→ Генератор случайных процессорных архитектур для обучения системному программированию — Петр Советов
Все выступления — на сайте. Кроме докладов будут дискуссии, нетворкинг, активности и розыгрыши от партнеров.
🎟 Купить билет
Если оплачиваете самостоятельно — промокод
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
📅 22 марта в Москве + онлайн
На конференции не будет абстрактных рассуждений — только разбор реальных кейсов, разрезка бинарников, дебаггинг и хардкор.
Доклады, на которые стоит обратить внимание:
→ Компиляторные технологии в верификации аппаратного обеспечения — Константин Владимиров
→ Устройство многопоточного рантайма движков ВКонтакте — Никита Костливцев
→ Генератор случайных процессорных архитектур для обучения системному программированию — Петр Советов
Все выступления — на сайте. Кроме докладов будут дискуссии, нетворкинг, активности и розыгрыши от партнеров.
🎟 Купить билет
Если оплачиваете самостоятельно — промокод
CPPPROGLIB
дает скидку 15%. Но выгоднее участвовать за счет компании! В статье есть аргументы, почему это полезно не только вам, но и работодателю.Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
😧 58% IT-специалистов страдают: психология успеха и борьба с синдромом самозванца
Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»
➡️ Читайте в статье
Спойлер:дело не в навыках, а в психологии успеха
🐸 Библиотека шарписта
Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»
Спойлер:
Please open Telegram to view this post
VIEW IN TELEGRAM