mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 10:42:36 +01:00
typeindices.hpp: add typeindex() helper
This commit is contained in:
parent
c7bf6421f4
commit
3092914527
@ -506,7 +506,7 @@ namespace utils
|
||||
template <typename T>
|
||||
typemap_head* get_head() const
|
||||
{
|
||||
return &m_map[stx::type_counter<typeinfo_base>::type<std::decay_t<T>>.index()];
|
||||
return &m_map[stx::typeindex<typeinfo_base, std::decay_t<T>>()];
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -96,7 +96,7 @@ namespace stx
|
||||
template <typename T, typename As = T, typename... Args>
|
||||
As* init(Args&&... args) noexcept
|
||||
{
|
||||
auto& ptr = m_list[stx::type_counter<typeinfo>::template type<std::decay_t<T>>.index()];
|
||||
auto& ptr = m_list[stx::typeindex<typeinfo, std::decay_t<T>>()];
|
||||
|
||||
if (ptr)
|
||||
{
|
||||
@ -112,7 +112,7 @@ namespace stx
|
||||
template <typename T>
|
||||
T* get() const noexcept
|
||||
{
|
||||
return static_cast<T*>(m_list[stx::type_counter<typeinfo>::template type<std::decay_t<T>>.index()]);
|
||||
return static_cast<T*>(m_list[stx::typeindex<typeinfo, std::decay_t<T>>()]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -123,4 +123,11 @@ namespace stx
|
||||
typelist_v<Info>.next->next = this;
|
||||
typelist_v<Info>.next = this;
|
||||
}
|
||||
|
||||
// Type index accessor
|
||||
template <typename Info, typename T>
|
||||
inline unsigned typeindex() noexcept
|
||||
{
|
||||
return type_counter<Info>::template type<T>.index();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user