Как использовать концепцию, чтобы ограничить имя типа числом? Возможности С++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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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