Feature/conceptcheck
There are currently no pipelines.
To run a merge request pipeline, the jobs in the CI/CD configuration file must be configured to run in merge request pipelines and you must have sufficient permissions in the source project.
This introduces the function
template<class C, class... T>
static constexpr bool models();
Its result indicates if the concept C is modelled by the collection
T... of types. A concept is a list of expressions that a type must
support. Concepts can refine other concepts to inherit all requirements
from those base concepts. Besides the concept check function itself, this contains
some helper functions of the form require*
that transform
a non-matching condition to a substitution failure. E.g.,
requireConvertible<R>(t.f())
is not valid unless the result of t.f()
is convertible to R.
Since models()
is the user interface, it's contained in the
namespace Dune::. In contrast the various require*()
functions
needed for concept definitions are in the namespace Dune::Concept::.
I strongly propose that concept definitions themselves also go into
namespaces Dune::(NonCoreModule::)Concept.
This merge request depends on the TypeList feature (!7 (merged)).
To run a merge request pipeline, the jobs in the CI/CD configuration file must be configured to run in merge request pipelines and you must have sufficient permissions in the source project.