memory_is_sufficiently_aligned
memory_is_sufficiently_aligned (std::is_sufficiently_aligned)
<memory> 헤더에 정의되어 있어요. 포인터 ptr이 정렬이 적어도 N 이상인 객체를 가리키는지 확인해요. C++26부터 도입됐어요.
출처: cppreference
본문
template< std::size_t N, class T >
bool is_sufficiently_aligned( T* ptr );
(C++26부터)
ptr이 정렬 값이 적어도 N인 객체를 가리키는지 확인해요.
ptr이 T 타입(각 수준의 cv-한정은 무시)의 객체를 가리키지 않으면 동작은 미정의예요.
반환값
ptr이 적어도 N만큼 정렬된 객체를 가리키면 true, 그렇지 않으면 false.
예외
아무 것도 던지지 않아요.
주의 (Notes)
std::is_sufficiently_aligned는 std::assume_aligned의 전제 조건으로 쓸 수 있어요.
기능 테스트 매크로는 __cpp_lib_is_sufficiently_aligned로, 값은 202411L(C++26)이에요.
int* p = ...;
if (std::is_sufficiently_aligned<256>(p)) {
int* pa = std::assume_aligned<256>(p); // 정렬 보장 후 최적화 적용
// pa 로 접근
}