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