27 template<
typename... Declarations>
28 PropertyList(Declarations&& ... declarations) {
29 processDeclarations(std::forward<Declarations>(declarations)...);
41 mProperties << std::move(declaration);
45 template<
typename Property,
typename... Declarations>
46 void processDeclarations(Property&& declaration, Declarations&& ... declarations) {
47 processDeclaration(std::forward<Property>(declaration));
48 if constexpr (
sizeof...(Declarations) > 0) {
49 processDeclarations(std::forward<Declarations>(declarations)...);
54 void processDeclaration(T&&
t) {
55 if constexpr (std::is_same_v<T, PropertyList>) {
56 mProperties = std::move(
t.mProperties);
60 "ass::prop::Property template specialization is not defined for this declaration");
62 mProperties << _new<declaration_t>(
t);