std::minus<void>
Определено в заголовочном файле <functional> | ||
template<> class minus<void>; | (начиная с C++14) | |
std::minus<> это специализация std::minus с выведенным типом параметра и возвращаемого значения.
Содержание |
[править]Типы элементы
Тип элемент | Определение |
is_transparent | /* неопределено */ |
[править]Функции-элементы
operator() | возвращает разницу двух аргументов (public функция-элемент) |
std::minus<>::operator()
template<class T, class U> constexprauto operator()( T&& lhs, U&& rhs )const | ||
Возвращает результат вычитания rhs из lhs (или любого другого operator-
, если он перегружен)
Параметры
lhs, rhs | — | значения для вычитания |
Возвращаемое значениеe
Результат lhs - rhs.
[править]Примечание
Тип элемент is_transparent
указывает вызывающему объекту, что этот функциональный объект является прозрачным: он принимает аргументы произвольных типов и использует идеальную переадресацию, которая позволяет избежать ненужного копирования и преобразования, когда функциональный объект используется в разнородном контексте или с аргументами rvalue. В частности, шаблонные функции, такие как std::set::find и std::set::lower_bound , используют этот тип элемента в своих типах Compare
.
[править]Пример
#include <complex>#include <functional>#include <iostream> int main(){constexprstd::complex<int> z(4, 2); std::cout<<std::minus<>{}(z, 1)<<' '<<(z -1)<<'\n';}
Вывод:
(3,2) (3,2)