31 PropertyList(Declarations&& ... declarations) {
32 processDeclarations(std::forward<Declarations>(declarations)...);
44 mProperties << std::move(declaration);
48 template<
typename Property,
typename... Declarations>
49 void processDeclarations(Property&& declaration, Declarations&& ... declarations) {
50 processDeclaration(std::forward<Property>(declaration));
51 if constexpr (
sizeof...(Declarations) > 0) {
52 processDeclarations(std::forward<Declarations>(declarations)...);
57 void processDeclaration(T&&
t) {
58 if constexpr (std::is_same_v<T, PropertyList>) {
59 mProperties = std::move(
t.mProperties);
63 "ass::prop::Property template specialization is not defined for this declaration");
65 mProperties << _new<declaration_t>(
t);