Files
cex/examples/concepts/composed.hpp
2026-09-07 15:16:52 -04:00

20 lines
455 B
C++

#pragma once
#include "foundation.hpp"
namespace library = std;
using std::copyable;
namespace demo {
template<class T>
concept Sized = requires(const T value) {
{ value.size() } -> library::integral;
requires library::same_as<decltype(value.size()), unsigned>;
};
template<class T>
concept Flexible = (Arithmetic<T> || Sized<T>) && requires(T value) {
requires copyable<T>;
};
template<class T>
concept Outer = Flexible<T> || Addable<T>;
}