numeric_bit_repeat

numeric_bit_repeat (std::bit_repeat)

<bit> 헤더에 정의되어 있어요. 길이 lengthpattern에 있는 비트 패턴을, 결과에 들어맞는 만큼 반복해요(마지막 반복은 잘릴 수 있어요). C++29부터 도입됐어요.

출처: cppreference

본문

template< class T >
constexpr T bit_repeat( T pattern, int length );

(C++29부터)

길이 lengthpattern에 있는 비트 패턴을, 결과에 들어맞는 만큼 반복해요(마지막 반복은 잠재적으로 잘릴 수 있어요).

length가 0보다 작거나 같으면 동작은 미정의예요. 무한 반복이나 결과에 비트가 넘칠 수 있는 패턴 등 특정 조건에서의 호출은 상수 평가에서만 허용될 수 있고, 정의되지 않은 동작이 상수 평가에서 발생하면 허용되지 않아요.

예제

#include <bit>
#include <cstdint>

// 4비트 패턴 0b1010 을 8비트 결과에 반복 → 0b10101010 (마지막 반복은 잘림)
auto r = std::bit_repeat(std::uint8_t{0b1010}, 4);

기능 테스트 매크로 __cpp_lib_bitops(202607L, C++29)는 비트 순열 지원을 나타내요.

더 알아보기 (Learn more)

cppreference