19 lines
355 B
C++
19 lines
355 B
C++
#pragma once
|
|
#include <concepts>
|
|
|
|
namespace Seele
|
|
{
|
|
template<class F, class... Args>
|
|
concept invocable = std::invocable<F, Args...>;
|
|
|
|
template<class Archive, class T>
|
|
concept serializable = requires(const T& t, Archive& a)
|
|
{
|
|
t.save(a);
|
|
} && requires(T& t, Archive& a)
|
|
{
|
|
t.load(a);
|
|
};
|
|
template<typename T>
|
|
concept enumeration = std::is_enum_v<T>;
|
|
} |