cpp/language/archetype

Archetypes are classes that help template library developers ensure that a template only relies on behavior specified in the concept requirements. Archetypes provide the minimal amount of operations such that a template can be instantiated and nothing more. Typically, archetypes are meant as compile-time aids only and will fail to link. When substituting an archetype as a template parameter, if template instantiation succeeds, then we know that the template does not use any operations it does not explicitly require.