Как использовать концепцию, чтобы ограничить имя типа числом? Возможности С++20C++

Программы на C++. Форум разработчиков
Anonymous
Как использовать концепцию, чтобы ограничить имя типа числом? Возможности С++20

Сообщение Anonymous »

Я изучаю некоторые современные функции C++20. Один из них — концепт. Я прочитал https://en.cppreference.com/w/cpp/language/constraints и https://www.modernescpp.com/index.php/d ... f-concepts, чтобы получить несколько примеров для подражания.
На данный момент я хочу разработать концепцию, позволяющую принимать только числовые типы данных. В традиционном методе можно использовать

Код: Выделить всё

template
как предложено в шаблоне класса для числовых типов
или можно также использовать static_assert() внутри определения класса/функции шаблона

Код: Выделить всё

static_assert(std::is_arithmetic::value, "NumericType must be numeric");
Мне интересно, каким должен быть синтаксис концепции? На данный момент я делаю

Код: Выделить всё

template
concept Numeric = std::is_arithmetic::value ;
и найдите это

Код: Выделить всё

template
void f(T){}
может сделать то, что я ожидал (по сути, просто печатать). Мне интересно, я прав или есть какая-то разница?

Подробнее здесь: https://stackoverflow.com/questions/670 ... 0-features

Вернуться в «C++»