Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <type_traits>
7 :
8 : #include "Utilities/TMPL.hpp"
9 :
10 : namespace db {
11 : /// Concept for a class constructible from tags listed in a
12 : /// `creation_tags` type alias.
13 : template <typename T>
14 : concept constructible_from_tags = tmpl::wrap<
15 : tmpl::push_front<tmpl::transform<typename T::creation_tags,
16 : tmpl::bind<tmpl::type_from, tmpl::_1>>,
17 : T>,
18 : std::is_constructible>::value;
19 : } // namespace db
|