18#include "Property/IProperty.h"
19#include <AUI/Common/AObject.h>
20#include <AUI/Traits/types.h>
27 template<
typename... 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);
59 static_assert(aui::is_complete<declaration_t>,
60 "ass::prop::Property template specialization is not defined for this declaration");
62 mProperties << _new<declaration_t>(
t);
A std::vector with AUI extensions.
Definition: AVector.h:38
An std::weak_ptr with AUI extensions.
Definition: SharedPtrTypes.h:177
Definition: PropertyList.h:25
Definition: IProperty.h:19