Типичная черта для типов символов в C++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Типичная черта для типов символов в C++?

Сообщение Anonymous »

Я пишу библиотечную функцию, способную обрабатывать любой целочисленный тип, но мне хотелось бы запретить ей также обрабатывать типы символов (например, char, char16_t и т. д.), поскольку это может сбивать пользователя с толку (у меня есть отдельная функция для обработки символов, которые должны выглядеть как символы).
Сейчас я использую такой код:
< pre class="lang-cpp Prettyprint-override">

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

template <
typename = std::enable_if_t<
std::is_integral_v && !std::is_same_v &&
!std::is_same_v && !std::is_same_v &&
!std::is_same_v && !std::is_same_v>>
constexpr auto do_stuff(T curr) noexcept {
/* TODO */
}
Однако это кажется очень хрупким — например, это было бы не совсем правильно для компилятора C++20 с char8_t, и даже если бы я сделал правильную функцию тесты для char8_t все еще довольно неудобно перечислять их все.
Есть ли способ обнаружить char-подобные типы, где мне не нужно было бы перечислять их все вышел?

Подробнее здесь: https://stackoverflow.com/questions/682 ... types-in-c
Ответить

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

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

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

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

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