# std::negate<void>

From cppreference.com
< cpp‎ | utility‎ | functional

Defined in header `<functional>` |  |
template<> class negate<void>; |  | (since C++14)

std::negate<> is a specialization of std::negate with parameter and return type deduced.

### Member types

Type | Definition
`is_transparent` | unspecified

### Member functions

operator() | returns its negated argument (public member function)

## std::negate<void>::operator()

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

Returns the result of negating arg.

### Parameters

arg | - | value to negate

### Return value

-std::forward<T>(arg).

### Example

Run this code

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

    int main()
    {
        auto complex_negate = std::negate<void>{}; // “void” can be omitted
        constexpr std::complex z(4, 2);
        std::cout << z << '\n';
        std::cout << -z << '\n';
        std::cout << complex_negate(z) << '\n';
    }

Output:

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

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/functional/negate_void&oldid=179777"