Namespaces
Variants

std::bitset<N>:: reference

From cppreference.net
Utilities library
class reference ;

std::bitset 클래스는 공개적으로 접근 가능한 중첩 클래스로 std::bitset::reference 를 포함합니다. 이 클래스는 비트셋의 개별 비트들과 상호작용할 수 있도록 사용자에게 프록시 객체로 사용되며, 이는 표준 C++ 타입들(참조와 포인터 같은)이 개별 비트를 지정할 만큼 충분한 정밀도를 갖추고 설계되지 않았기 때문입니다.

std::bitset::reference 의 주요 용도는 operator[] 에서 반환될 수 있는 lvalue를 제공하는 것입니다.

비트셋에 대한 모든 읽기 또는 쓰기는 std::bitset::reference 를 통해 발생할 경우, 잠재적으로 전체 기본 비트셋을 읽거나 쓸 수 있습니다.

목차

멤버 함수

(constructor)
참조자를 생성합니다
(public member function)
(destructor)
참조자를 파괴합니다
(public member function)
operator=
참조된 비트에 값을 할당합니다
(public member function)
operator bool
참조된 비트를 반환합니다
(public member function)
operator~
반전된 참조 비트를 반환합니다
(public member function)
flip
참조된 비트를 반전시킵니다
(public member function)

std::bitset<N>::reference:: reference

reference ( const reference & ) = default ;
(C++11부터)
(C++23부터 constexpr)

다른 reference로부터 reference를 생성합니다. 복사 생성자는 암시적으로 선언됩니다. (C++11 이전)

다른 생성자들은 std::bitset 에 의해서만 접근 가능합니다.

std::bitset<N>::reference:: ~reference

~reference ( ) ;
(C++23부터 constexpr)

레퍼런스를 파괴합니다.

std::bitset<N>::reference:: operator=

reference & operator = ( bool x ) ;
(1) (noexcept since C++11)
(constexpr since C++23)
reference & operator = ( const reference & x ) ;
(2) (noexcept since C++11)
(constexpr since C++23)

참조된 비트에 값을 할당합니다.

매개변수

x - 할당할 값

반환 값

* this

std::bitset<N>::reference:: operator bool

operator bool ( ) const ;
(noexcept since C++11)
(constexpr since C++23)

참조된 비트의 값을 반환합니다.

반환 값

참조된 비트.

std::bitset<N>::reference:: operator~

bool operator~ ( ) const ;
(noexcept since C++11)
(constexpr since C++23)

참조된 비트의 역을 반환합니다.

반환 값

참조된 비트의 역.

std::bitset<N>::reference:: flip

reference & flip ( ) ;
(C++11부터 noexcept)
(C++23부터 constexpr)

참조된 비트를 반전시킵니다.

반환 값

* this

예제

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<4> bs{0b1110};
    std::bitset<4>::reference ref = bs[2];
    auto info = [&](int id)
    {
        std::cout << id << ") bs: " << bs << "; ref bit: " << ref << '\n';
    };
    info(1);
    ref = false;
    info(2);
    ref = true;
    info(3);
    ref.flip();
    info(4);
    ref = bs[1]; // operator=( const reference& x )
    info(5);
    std::cout << "6) ~ref bit: " << ~ref << '\n';
}

출력:

1) bs: 1110; ref bit: 1
2) bs: 1010; ref bit: 0
3) bs: 1110; ref bit: 1
4) bs: 1010; ref bit: 0
5) bs: 1110; ref bit: 1
6) ~ref bit: 0

참고 항목

특정 비트에 접근
(public member function)