diff --git a/sutk/include/sutk/ThemeManager.hpp b/sutk/include/sutk/ThemeManager.hpp index 312f61b9..84cb2897 100644 --- a/sutk/include/sutk/ThemeManager.hpp +++ b/sutk/include/sutk/ThemeManager.hpp @@ -79,9 +79,9 @@ namespace SUTK com::unordered_map m_strings; ThemeInterfaceList m_interfaces; public: - Theme(UIDriver& driver, std::initializer_list interfaces) noexcept : UIDriverObject(driver), m_interfaces(interfaces) { } - Theme(UIDriver& driver, std::vector interfaces) noexcept : UIDriverObject(driver), m_interfaces(interfaces) { } - Theme(UIDriver& driver, ThemeInterfaceType* interface) noexcept : Theme(driver, { interface }) { } + Theme(UIDriver& driver, std::vector& interfaces) noexcept : UIDriverObject(driver), m_interfaces(interfaces) { } + Theme(UIDriver& driver, std::vector&& interfaces) noexcept : UIDriverObject(driver), m_interfaces(std::move(interfaces)) { } + Theme(UIDriver& driver, ThemeInterfaceType* interface) noexcept : Theme(driver, std::vector { interface }) { } ThemeInterfaceList& getInterfaces() noexcept { return m_interfaces; } @@ -369,10 +369,10 @@ namespace SUTK ThemeType* createTheme(const KeyViewType& key, ThemeInterfaceType* interface) noexcept { - return createTheme(key, std::initializer_list { interface }); + return createTheme(key, std::vector { interface }); } - template requires(com::SameAsAny, std::vector>) - ThemeType* createTheme(const KeyViewType& key, InitVectorType& interfaces) noexcept + template requires(std::same_as>) + ThemeType* createTheme(const KeyViewType& key, InitVectorType&& interfaces) noexcept { _com_assert(!m_themes.contains(key)); ThemeType* theme = new ThemeType(getUIDriver(), std::forward(interfaces));