std::signed_integral
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <concepts>
|
||
template < class T > concept signed_integral = std::integral<T> && std::is_signed_v<T>; |
(начиная с C++20) | |
Концепт signed_integral<T> выполняется тогда и только тогда, когда T является целочисленным типом и std::is_signed_v<T> равно true.
Примечание
signed_integral<T> может соответствовать типу, который не является целочисленным типом со знаком, например, char (в системе, где char имеет знак).
Пример
Запустить этот код
#include <concepts>
#include <iostream>
void print(std::signed_integral auto i) {
std::cout << "Целое со знаком: " << i << '\n';
}
void print(std::unsigned_integral auto u) {
std::cout << "Целое без знака: " << u << '\n';
}
void print(auto x) {
std::cout << "Нецелое: " << x << '\n';
}
int main() {
print(42); // знаковое
print(0xFull); // без знаковое
print(true); // без знаковое
print('A'); // зависит от платформы
print(4e-2); // нецелое (шестнадцатеричный float)
print("∫∫∫"); // нецелое
}
Возможный вывод:
Целое со знаком: 42
Целое без знака: 15
Целое без знака: 1
Целое со знаком: A
Нецелое: 0.04
Нецелое: ∫∫∫
Смотрите также
(C++11) |
проверяет, является ли тип целочисленным типом (шаблон класса) |
(C++11) |
проверяет, является ли тип арифметическим типом со знаком (шаблон класса) |