diff --git a/ui/ui_utility.h b/ui/ui_utility.h index 61b53c0..5601942 100644 --- a/ui/ui_utility.h +++ b/ui/ui_utility.h @@ -68,9 +68,11 @@ inline Value *CreateChild( parent, std::forward(args)...)->value(); } - } else { - static_assert(requires(const Parent &t) { t.get(); }); + } else if constexpr (requires(const Parent & t) { t.get(); }) { return new Value(parent.get(), std::forward(args)...); + } else { + static_assert(requires(const Parent &t) { t.data(); }); + return new Value(parent.data(), std::forward(args)...); } }