std::bit_not
From cppreference.com
                    
                                        
                    < cpp | utility | functional
                    
                                                            
                    |   Defined in header  <functional>
  | 
||
|   template< class T = void > struct bit_not;  | 
(since C++14) | |
Function object for performing bitwise NOT. Effectively calls operator~ on type T.
Specializations
The standard library provides a specialization of std::bit_not when T is not specified, which leaves the parameter types and return type to be deduced.
|    function object implementing ~x deducing argument and return types  (class template specialization)  | 
Member types
  | 
(until C++20) | 
Member functions
|    operator()  | 
   returns the result of bitwise NOT of its argument  (public member function)  | 
std::bit_not::operator()
|   constexpr T operator()( const T& arg ) const;  | 
||
Returns the result of bitwise NOT of arg.
Parameters
| arg | - | value to compute bitwise NOT of | 
Return value
The result of ~arg.
Exceptions
(none)
Possible implementation
constexpr T operator()(const T& arg) const { return ~arg; }  |