---
name: "std::_Not_fn"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::_Not_fn"
---

# std::\_Not\_fn(3)

Generalized negator.

## NAME

std::\_Not\_fn\< \_Fn \> - Generalized negator.

## SYNOPSIS

\#include \<functional\>

### Public Member Functions

template\<typename \_Fn2\> constexpr **\_Not\_fn** (\_Fn2 &&\_\_fn, int)\
 **\_Not\_fn** (\_Not\_fn &&\_\_fn)=default\
 **\_Not\_fn** (const \_Not\_fn &\_\_fn)=default\
 template\<typename... \_Args, typename = enable\_if\_t\<!\_\_is\_invocable\<\_Fn &&, \_Args...\>::value\>\> void **operator()** (\_Args &&... \_\_args) &&=delete\
 template\<typename... \_Args, typename = enable\_if\_t\<\_\_is\_invocable\<\_Fn &&, \_Args...\>::value\>\> constexpr decltype(\_S\_not\< \_\_inv\_res\_t\< \_Fn &&, \_Args... \> \>()) **operator()** (\_Args &&... \_\_args) &&noexcept(\_\_is\_nothrow\_invocable\< \_Fn &&, \_Args... \>::value &&noexcept(\_S\_not\< \_\_inv\_res\_t\< \_Fn &&, \_Args... \> \>()))\
 template\<typename... \_Args, typename = enable\_if\_t\<!\_\_is\_invocable\<\_Fn &, \_Args...\>::value\>\> void **operator()** (\_Args &&... \_\_args) &=delete\
 template\<typename... \_Args, typename = enable\_if\_t\<\_\_is\_invocable\<\_Fn &, \_Args...\>::value\>\> constexpr decltype(\_S\_not\< \_\_inv\_res\_t\< \_Fn &, \_Args... \> \>()) **operator()** (\_Args &&... \_\_args) &noexcept(\_\_is\_nothrow\_invocable\< \_Fn &, \_Args... \>::value &&noexcept(\_S\_not\< \_\_inv\_res\_t\< \_Fn &, \_Args... \> \>()))\
 template\<typename... \_Args, typename = enable\_if\_t\<!\_\_is\_invocable\<\_Fn const &&, \_Args...\>::value\>\> void **operator()** (\_Args &&... \_\_args) const &&=delete\
 template\<typename... \_Args, typename = enable\_if\_t\<\_\_is\_invocable\<\_Fn const &&, \_Args...\>::value\>\> constexpr decltype(\_S\_not\< \_\_inv\_res\_t\< \_Fn const &&, \_Args... \> \>()) **operator()** (\_Args &&... \_\_args) const &&noexcept(\_\_is\_nothrow\_invocable\< \_Fn const &&, \_Args... \>::value &&noexcept(\_S\_not\< \_\_inv\_res\_t\< \_Fn const &&, \_Args... \> \>()))\
 template\<typename... \_Args, typename = enable\_if\_t\<!\_\_is\_invocable\<\_Fn const &, \_Args...\>::value\>\> void **operator()** (\_Args &&... \_\_args) const &=delete\
 template\<typename... \_Args, typename = enable\_if\_t\<\_\_is\_invocable\<\_Fn const &, \_Args...\>::value\>\> constexpr decltype(\_S\_not\< \_\_inv\_res\_t\< \_Fn const &, \_Args... \> \>()) **operator()** (\_Args &&... \_\_args) const &noexcept(\_\_is\_nothrow\_invocable\< \_Fn const &, \_Args... \>::value &&noexcept(\_S\_not\< \_\_inv\_res\_t\< \_Fn const &, \_Args... \> \>()))\

## Detailed Description

### template\<typename \_Fn\>

class std::\_Not\_fn\< \_Fn \>"Generalized negator.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
