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