99#if TGUI_COMPILED_WITH_CPP_VER >= 17
112 template <
typename T>
114#if TGUI_COMPILED_WITH_CPP_VER >= 17
115 m_variant{std::forward<T>(value)}
117 m_any{std::forward<T>(value)}
127 template <
typename T>
130#if TGUI_COMPILED_WITH_CPP_VER >= 17
131 return std::get<T>(m_variant);
133 return m_any.as<T>();
142 template <
typename T>
143 TGUI_NODISCARD
const T&
get()
const
145#if TGUI_COMPILED_WITH_CPP_VER >= 17
146 return std::get<T>(m_variant);
148 return m_any.as<T>();
158 template <std::size_t Index>
161#if TGUI_COMPILED_WITH_CPP_VER >= 17
162 return std::get<Index>(m_variant);
164 return priv::IndexInEmulatedVariantHelper<FirstType, OtherTypes...>::getByIndex(m_any, Index, 0);
173 template <std::size_t Index>
174 const auto& get() const
176#if TGUI_COMPILED_WITH_CPP_VER >= 17
177 return std::get<Index>(m_variant);
179 return priv::IndexInEmulatedVariantHelper<FirstType, OtherTypes...>::getByIndex(m_any, Index, 0);
186 std::size_t index() const
188#if TGUI_COMPILED_WITH_CPP_VER >= 17
189 return m_variant.index();
191 return priv::IndexInEmulatedVariantHelper<FirstType, OtherTypes...>::findIndex(m_any, 0);
199#if TGUI_COMPILED_WITH_CPP_VER >= 17
200 std::variant<Types...> m_variant;