std::bit_not(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

🌸 NAME 🌸

std::bit_not β€” std::bit_not. That's the whole name, bestie. This is the std::bit_not(3) page from the C++ Standard Libary manual (yes, that's how the manual name is spelled in the header, no cap πŸ’…).

✨ Synopsis ✨

Defined in header <functional>
template< class T = void >      (since C++14)
struct bit_not;

Function object for performing bitwise NOT. It's effectively calling operator~ on type T. Iconic behavior, honestly.

πŸ’« 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. Very demure, very deduced.

  • bit_not<void> β€” function object implementing ~x deducing parameter and return types (C++14) (class template specialization). Slay.

πŸŽ€ Member types πŸŽ€

  • result_type β€” Definition: T; deprecated in C++17, removed in C++20.
  • argument_type β€” Definition: T; deprecated in C++17, removed in C++20.

πŸ’… Member functions πŸ’…

  • operator() β€” returns the result of bitwise NOT of its argument (C++14) (public member function).

🌟 std::bit_not::operator() 🌟

constexpr T operator()( const T& arg ) const;  (since C++14)

Returns the result of bitwise NOT of arg.

Parameters

  • arg β€” value to compute bitwise NOT of.

Return value

The result of ~arg.

Exceptions

May throw implementation-defined exceptions.

Possible implementation

constexpr T operator()(const T& arg) const
{
    return ~arg;
}

πŸ”₯ Notes πŸ”₯

Although std::bit_not is added via post-C++11 proposal N3421, it is treated as a part of the resolution for LWG issue 660 (except for its transparent specialization std::bit_not<>) by common implementations, and thus available in their C++98/03 mode.

okay bye bestie 🫢 β€” source/version and date check: http://cppreference.com, 2024.06.10, page std::bit_not(3). Mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from