numeric_bit_repeat
numeric_bit_repeat (std::bit_repeat)
<bit> 헤더에 정의되어 있어요. 길이 length의 pattern에 있는 비트 패턴을, 결과에 들어맞는 만큼 반복해요(마지막 반복은 잘릴 수 있어요). C++29부터 도입됐어요.
출처: cppreference
본문
template< class T >
constexpr T bit_repeat( T pattern, int length );
(C++29부터)
길이 length의 pattern에 있는 비트 패턴을, 결과에 들어맞는 만큼 반복해요(마지막 반복은 잠재적으로 잘릴 수 있어요).
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)는 비트 순열 지원을 나타내요.