TGViewer
Senior C++ Developer Senior C++ Developer @seniorcpp · 11.6K subscribers
Post #3238 1.4K
➡️ Концепты (Concepts) в C++

Концепты - это новая возможность в C++20, которая позволяет задавать ограничения на шаблонные параметры. Это позволяет писать более безопасный и читаемый код, поскольку компилятор проверяет соответствие типов требованиям концептов на этапе компиляции.

• template<typename T> concept Arithmetic = std::is_arithmetic_v<T>; определяет концепт Arithmetic, который ограничивает типы, для которых значение std::is_arithmetic_v<T> истинно (т.е. типы, которые являются арифметическими).

• template<Arithmetic T> T add(const T& a, const T& b) определяет шаблонную функцию add, которая будет компилироваться только для типов, удовлетворяющих концепту Arithmetic.
Использование функции add:

• Примеры с целыми числами и числами с плавающей запятой успешно вызывают функцию add.

•
Пример со строками (закомментированный) вызовет ошибку компиляции, так как std::string не является арифметическим типом.
More from @seniorcpp
  1. Oct 1, 2026malloc стал безопасен В предыдущих версиях использование низкоуровневых функций, унаследов…
  2. Sep 30, 2026Алгоритм copy_n Используется для копирования элементов из одного контейнера в другой.
  3. Sep 28, 2026Упрощаем код с помощью if constexpr и концептов C++17/C++20 Смотреть статью
  4. Sep 27, 2026#вопросы_с_собеседований Как следует обрабатывать ошибки во время выполнения в C++? — Ошиб…
  5. Sep 25, 2026Проверка возможности конструирования элемента с набором конкретных параметров Когда шаблон…
  6. Sep 24, 2026Передача адреса переменной в функцию в Си. https://youtu.be/OXhrYl9no2A
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 →