Core/ChatCommands: Add Variant.get<typename> overload (PR #25267)

Co-authored-by: Treeston <treeston.mmoc@gmail.com>
This commit is contained in:
Peter Keresztes Schmidt
2020-08-17 14:45:32 +02:00
committed by GitHub
parent 66491dbfb3
commit dfeaa2e81f

View File

@@ -156,10 +156,16 @@ namespace Trinity::ChatCommands
Variant& operator=(T&& arg) { base::operator=(std::forward<T>(arg)); return *this; }
template <size_t index>
constexpr decltype(auto) get() { return std::get<index>(static_cast<base const&>(*this)); }
constexpr decltype(auto) get() { return std::get<index>(static_cast<base&>(*this)); }
template <size_t index>
constexpr decltype(auto) get() const { return std::get<index>(static_cast<base const&>(*this)); }
template <typename type>
constexpr decltype(auto) get() { return std::get<type>(static_cast<base&>(*this)); }
template <typename type>
constexpr decltype(auto) get() const { return std::get<type>(static_cast<base const&>(*this)); }
template <typename T>
constexpr decltype(auto) visit(T&& arg) { return std::visit(std::forward<T>(arg), static_cast<base&>(*this)); }
template <typename T>
constexpr decltype(auto) visit(T&& arg) const { return std::visit(std::forward<T>(arg), static_cast<base const&>(*this)); }