Files
Seele/src/Engine/Concepts.h
T

19 lines
353 B
C++
Raw Normal View History

2021-12-09 12:38:02 +01:00
#pragma once
#include <concepts>
namespace Seele
{
template<class F, class... Args>
concept invocable = std::invocable<F, Args...>;
2023-02-13 14:56:13 +01:00
template<class T, class Archive>
2023-04-09 16:39:53 +02:00
concept serializable = requires(const T t, Archive& a)
2023-02-13 14:56:13 +01:00
{
2023-04-09 16:39:53 +02:00
t.save(a);
} && requires(T t, Archive& a)
{
t.load(a);
2023-02-13 14:56:13 +01:00
};
template<typename T>
concept enumeration = std::is_enum_v<T>;
2021-12-09 12:38:02 +01:00
}