Files
cex/examples/concepts/composed.hpp

20 lines
455 B
C++
Raw Normal View History

2026-09-07 15:16:52 -04:00
#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>;
}