[execpol.type]

# 26 Algorithms library [[algorithms]](./#algorithms)

## 26.3 Parallel algorithms [[algorithms.parallel]](algorithms.parallel#execpol.type)

### 26.3.6 Execution policies [[execpol]](execpol#type)

#### 26.3.6.2 Execution policy type trait [execpol.type]

[ð](#lib:is_execution_policy)

`template<class T> struct is_execution_policy;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/algorithms.tex#L675)

is_execution_policy can be used to detect execution policies for the
purpose of excluding function signatures from otherwise ambiguous overload
resolution participation[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/algorithms.tex#L680)

is_execution_policy<T> is a *Cpp17UnaryTypeTrait* with a
base characteristic of true_type if T is the type of a standard
or implementation-defined
execution policy, otherwise false_type[.](#2.sentence-1)

[*Note [1](#note-1)*:

This provision reserves the privilege of creating non-standard execution
policies to the library implementation[.](#2.sentence-2)

â *end note*]

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/algorithms.tex#L691)

The behavior of a program that adds specializations foris_execution_policy is undefined[.](#3.sentence-1)
