Пространства имён
Варианты
Действия

std::negate<void>

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Объекты функции
Функции обёртки
(C++11)
(C++11)
Применение частичных функций
(C++20)(C++23)
(C++11)
Вызов функции
(C++17)(C++23)
Объект идентичности функции
(C++20)
Обёртки ссылок
(C++11)(C++11)
Прозрачные обёртки операторов
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Отрицатели
(C++17)
Искатели
Ограниченные компараторы
Старые привязки и адаптеры
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
(до C++17*)(до C++17*)
(до C++17*)(до C++17*)

(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
 
<tbody> </tbody>
Определено в заголовочном файле <functional>
template<> class negate<void>;
(начиная с C++14)

std::negate<> является специализацией std::negate с выведенным типом параметра и возвращаемого значения.

Типы элементы

Тип элемент Определение
is_transparent /* неопределено */

Функции-элементы

возвращает свой аргумент отрицательным
(public функция-элемент)

std::negate<>::operator()

<tbody> </tbody>
template< class T > constexpr auto operator()( T&& arg ) const -> decltype(-std::forward<T>(arg));

Возвращает результат инвертирования arg (или то, для чего перегружен унарный operator-).

Параметры

arg значение для отрицания

Возвращаемое значение

Результат -arg.

Примечание

Тип элемент is_transparent указывает вызывающему объекту, что этот функциональный объект является прозрачным: он принимает аргументы произвольных типов и использует идеальную переадресацию, которая позволяет избежать ненужного копирования и преобразования, когда функциональный объект используется в разнородном контексте или с аргументами rvalue. В частности, шаблонные функции, такие как std::set::find и std::set::lower_bound , используют этот тип элемента в своих типах Compare.

Пример

#include <complex>
#include <functional>
#include <iostream>

int main()
{
    constexpr std::complex z(4, 2);

    std::cout << z << ' ' << -z << ' ' << std::negate{}(z) << '\n';
}

Вывод:

(4,2) (-4,-2) (-4,-2)