aboutsummaryrefslogtreecommitdiff
path: root/src/DI/type_traits.hpp
blob: 6847c4fcc74279f5aa0f3924715ebafe8908f96a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once

#include "DI/factory.hpp"

#include <type_traits>

template <typename NotAFunction>
struct is_factory : public std::false_type // NOLINT(readability-identifier-naming)
{
};

template <typename Return, typename... Args>
struct is_factory<Factory<Return(Args...)>> : public std::true_type
{
};

template <typename PossiblyFunction>
inline constexpr bool is_factory_v = is_factory<PossiblyFunction>::value;