functional_bit_not
functional_bit_not (비트 NOT 함수 객체)
std::bit_not은 비트 단위 NOT 연산을 수행하는 함수 객체예요. 즉, 타입 T에 대해 operator ~를 호출하는 효과를 가진답니다. C++14부터 사용할 수 있으며, 템플릿 인자를 생략하면 파라미터와 반환 타입을 자동으로 추론하는 투명한 특수화도 제공해요.
출처: cppreference
본문
<functional> 헤더에 정의되어 있어요.
Defined in header <functional> |
||
|---|---|---|
template < class T = void > struct bit_not ; |
(since C++14) |
비트 NOT을 수행하는 함수 객체예요. 실제로는 타입 T에 대해 operator ~를 호출해요.
특수화 (Specializations)
표준 라이브러리는 T가 지정되지 않은 경우 std::bit_not의 특수화를 제공해요. 이때 파라미터 타입과 반환 타입은 추론되도록 남겨둔답니다.
bit_not<void> (C++14) |
~ x를 구현하며 파라미터와 반환 타입을 추론하는 함수 객체 (클래스 템플릿 특수화) [edit] |
|---|
멤버 타입 (Member types)
| Type | Definition |
|---|---|
result_type (C++17에서 deprecated, C++20에서 제거) |
T |
argument_type (C++17에서 deprecated, C++20에서 제거) |
T |
멤버 함수 (Member functions)
operator() (C++14) |
인자의 비트 NOT 결과를 반환해요 (public member function) |
|---|
std::bit_not::operator()
constexpr T operator()( const T& arg ) const; |
(since C++14) |
|---|
arg의 비트 NOT 결과를 반환해요.
매개변수 (Parameters)
arg |
- | 비트 NOT을 계산할 값 |
|---|
반환값 (Return value)
~ arg의 결과예요.
예외 (Exceptions)
구현에서 정의된 예외를 던질 수 있어요.
가능한 구현 (Possible implementation)
constexpr T operator()( const T& arg ) const { return ~arg; }
참고 (Notes)
std::bit_not은 C++11 이후 제안서 N3421을 통해 추가되었지만, 일반적인 구현에서는 LWG issue 660의 해결책의 일부로 취급돼요. 다만 투명한 특수화인 std::bit_not<>은 예외이며, 이러한 구현들은 C++98/03 모드에서도 이 기능을 사용할 수 있게 해준답니다.