If uses_allocator<container_type, Alloc>::value is false the constructors in this subclause shall not participate in overload resolution.

```
template <class Alloc>
explicit priority_queue(const Alloc& a);
```

*Effects:* Initializes c with a and value-initializes comp.

```
template <class Alloc>
priority_queue(const Compare& compare, const Alloc& a);
```

*Effects:* Initializes c with a and initializes comp with compare.

```
template <class Alloc>
priority_queue(const Compare& compare, const Container& cont, const Alloc& a);
```

*Effects:* Initializes c with cont as the first argument and a as the second
argument, and initializes comp with compare.

```
template <class Alloc>
priority_queue(const Compare& compare, Container&& cont, const Alloc& a);
```

*Effects:* Initializes c with std::move(cont) as the first argument and a
as the second argument, and initializes comp with compare.

```
template <class Alloc>
priority_queue(const priority_queue& q, const Alloc& a);
```

*Effects:* Initializes c with q.c as the first argument and a as
the second argument, and initializes comp with q.comp.

```
template <class Alloc>
priority_queue(priority_queue&& q, const Alloc& a);
```

*Effects:* Initializes c with std::move(q.c) as the first argument and a
as the second argument, and initializes comp with std::move(q.comp).