tgoop.com/seniorcpp/2879
Last Update:
Концепты - это новая возможность в 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
не является арифметическим типом.