is_execution_policy

is_execution_policy (실행 정책 판정 트레이트)

타입이 표준 실행 정책 타입인지 판정하는 트레이트예요. <execution> 헤더에 있어요.

출처: cppreference

본문

std::is_execution_policy<T>T가 표준 실행 정책 타입(std::execution::sequenced_policy, parallel_policy, parallel_unsequenced_policy, unsequenced_policy)인지 나타내는 트레이트예요.

template<class T>
struct is_execution_policy;
  • T가 표준 실행 정책 타입이면 valuetrue예요.
  • 사용자 정의 타입은 특수화하지 않는 한 false예요. (표준 구현은 이 트레이트를 특수화할 수 있어요.)

실행 정책은 병렬 알고리즘의 첫 번째 인자로 넘겨져 오버로드 해석을 선택하는 데 쓰여요. 여러 비표준 실행 정책 타입이 존재할 수 있으니, 이 트레이트로 "실행 정책으로 쓰일 수 있는 타입"인지 컴파일 타임에 판정해요.

예를 들어 std::all_of 같은 알고리즘의 실행 정책 오버로드는 std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>>가 참일 때만 오버로드 해석에 참여해요. 그래서 이 트레이트가 오버로드 해석의 게이트 역할을 해요.

더 알아보기 (Learn more)

cppreference