Std::make_signed, который принимает типы с плавающей запятойC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std::make_signed, который принимает типы с плавающей запятой

Сообщение Anonymous »


У меня есть шаблонный класс, экземпляр которого можно создать только для скалярных типов (целые числа, числа с плавающей запятой и т. д.), и я хочу, чтобы typedef-член всегда был знаковым вариантом типа. То есть:

целое число без знака -> целое число со знаком
длинная подпись -> длинная подпись (уже подписана)
беззнаковый символ -> знаковый символ
float -> float
длинный двойной -> длинный двойной
и т. д...

К сожалению, std::make_signed работает только для целочисленных типов, а не для типов с плавающей запятой. Каков самый простой способ сделать это? Я ищу что-то вроде using SignedT = ...;, чтобы оно было частью моего шаблонного класса с параметром шаблона T, который уже гарантированно является скалярным.
Ответить

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

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

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

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

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