[res.on.requirements]

# 16 Library introduction [[library]](./#library)

## 16.4 Library-wide requirements [[requirements]](requirements#res.on.requirements)

### 16.4.5 Constraints on programs [[constraints]](constraints#res.on.requirements)

#### 16.4.5.11 Semantic requirements [res.on.requirements]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3565)

A sequence Args of template arguments is said to[*model*](#def:model,concept "16.4.5.11 Semantic requirements [res.on.requirements]") a concept C if Args satisfies C ([[temp.constr.decl]](temp.constr.decl "13.5.3 Constrained declarations")) and
meets all semantic requirements (if any)
given in the specification of C[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3574)

If the validity or meaning of a program
depends on whether a sequence of template arguments models a concept, and
the concept is satisfied but not modeled,
the program is ill-formed, no diagnostic required[.](#2.sentence-1)

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L3580)

If the semantic requirements of a declaration's
constraints ([[structure.requirements]](structure.requirements "16.3.2.3 Requirements")) are not modeled at the point of use,
the program is ill-formed, no diagnostic required[.](#3.sentence-1)
