CMP++: Uncertainty Quantification & Bayesian Calibration
Loading...
Searching...
No Matches
cmp::VectorLike Concept Reference

Concept for compile-time validation of vector-like containers. More...

#include <cmp_defines.h>

Concept definition

template<typename T>
concept cmp::VectorLike = requires(T a, size_t i) {
typename T::value_type;
{
a.size()
}
-> std::convertible_to<size_t>;
{
a[i]
}
-> std::convertible_to<typename T::value_type>;
{
a.data()
}
-> std::convertible_to<const typename T::value_type*>;
{
a.begin()
};
{
a.end()
};
}
Concept for compile-time validation of vector-like containers.
Definition cmp_defines.h:51

Detailed Description

Concept for compile-time validation of vector-like containers.

Mathematical Formulation Defines a set of constraints for type \(T\) representing an element in a finite-dimensional vector space \(\mathbb{R}^N\).

Implementation Algorithm Ensures that \(T\) supports:

  • .size() returning an integer/size type.
  • operator[] for coordinate access.
  • .data() providing a raw pointer to contiguous memory.
  • Iterators .begin() and .end().