mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-06 06:55:09 +00:00
utilities: fix refl::calcFieldCount for enum
add unordered_vector utility modernize hexdump
This commit is contained in:
parent
7d0f277ad5
commit
b012964099
3 changed files with 47 additions and 17 deletions
|
|
@ -139,11 +139,11 @@ constexpr auto calcFieldCount() {
|
|||
} else {
|
||||
constexpr auto c = getNameOf<EnumT(N)>()[0];
|
||||
if constexpr (requires { EnumT::Count; }) {
|
||||
return EnumT::Count;
|
||||
return static_cast<std::size_t>(EnumT::Count);
|
||||
} else if constexpr (requires { EnumT::_count; }) {
|
||||
return EnumT::_count;
|
||||
return static_cast<std::size_t>(EnumT::_count);
|
||||
} else if constexpr (requires { EnumT::count; }) {
|
||||
return EnumT::count;
|
||||
return static_cast<std::size_t>(EnumT::count);
|
||||
} else if constexpr (!requires { getNameOf<EnumT(N)>()[0]; }) {
|
||||
return N;
|
||||
} else if constexpr (c >= '0' && c <= '9') {
|
||||
|
|
|
|||
29
rx/include/rx/unordered_vector.hpp
Normal file
29
rx/include/rx/unordered_vector.hpp
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <utility>
|
||||
|
||||
namespace rx {
|
||||
template <typename VectorT>
|
||||
void unordered_vector_erase(VectorT &vector, std::size_t pos) {
|
||||
if (pos + 1 == vector.size()) {
|
||||
vector.pop_back();
|
||||
return;
|
||||
}
|
||||
|
||||
std::swap(vector[pos], vector.back());
|
||||
vector.pop_back();
|
||||
}
|
||||
|
||||
template <typename VectorT, typename Value>
|
||||
void unordered_vector_insert(VectorT &vector, std::size_t pos, Value &&value) {
|
||||
bool isLast = pos + 1 == vector.size();
|
||||
vector.push_back(std::move(value));
|
||||
|
||||
if (isLast) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::swap(vector[pos], vector.back());
|
||||
}
|
||||
} // namespace rx
|
||||
Loading…
Add table
Add a link
Reference in a new issue