Initial Commit
This commit is contained in:
19
examples/concepts/composed.hpp
Normal file
19
examples/concepts/composed.hpp
Normal file
@@ -0,0 +1,19 @@
|
||||
#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>;
|
||||
}
|
||||
Reference in New Issue
Block a user