Iros
 
Loading...
Searching...
No Matches
interface.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/meta/algorithm.h"
7#include "di/meta/core.h"
8
9namespace di::concepts {
10namespace detail {
11 template<typename T>
12 constexpr static bool is_interface = false;
13
14 template<typename... Methods>
15 requires((concepts::Method<meta::Type<Methods>> && ...) &&
16 (meta::ExactlyOnce<meta::Transform<meta::AsList<meta::MethodSignature<meta::Type<Methods>>>,
17 meta::Quote<meta::RemoveCVRef>>,
18 This> &&
19 ...))
20 constexpr static bool is_interface<meta::List<Methods...>> = true;
21}
22
23template<typename T>
24concept Interface = detail::is_interface<T>;
25}
Definition interface.h:24
Definition impl.h:7
Definition any_storable.h:9