CommonFuncs: Replace ArraySize define with constexpr equivalent
This commit is contained in:
parent
c5979b47be
commit
3f1b488a12
|
@ -17,16 +17,14 @@
|
|||
|
||||
#include <cstddef>
|
||||
#include <string>
|
||||
#include <type_traits>
|
||||
#include "Common/CommonTypes.h"
|
||||
|
||||
// Will fail to compile on a non-array:
|
||||
// TODO: make this a function when constexpr is available
|
||||
template <typename T>
|
||||
struct ArraySizeImpl : public std::extent<T>
|
||||
{ static_assert(std::is_array<T>::value, "is array"); };
|
||||
|
||||
#define ArraySize(x) ArraySizeImpl<decltype(x)>::value
|
||||
template <typename T, size_t N>
|
||||
constexpr size_t ArraySize(T (&arr)[N])
|
||||
{
|
||||
return N;
|
||||
}
|
||||
|
||||
#define b2(x) ( (x) | ( (x) >> 1) )
|
||||
#define b4(x) ( b2(x) | ( b2(x) >> 2) )
|
||||
|
|
|
@ -132,7 +132,7 @@ CEXIMemoryCard::CEXIMemoryCard(const int index, bool gciFolder)
|
|||
|
||||
memory_card_size = memorycard->GetCardId() * SIZE_TO_Mb;
|
||||
u8 header[20] = {0};
|
||||
memorycard->Read(0, ArraySize(header), header);
|
||||
memorycard->Read(0, static_cast<s32>(ArraySize(header)), header);
|
||||
SetCardFlashID(header, card_index);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "Common/CommonFuncs.h"
|
||||
|
||||
TEST(CommonFuncs, ArraySizeMacro)
|
||||
TEST(CommonFuncs, ArraySizeFunction)
|
||||
{
|
||||
char test[4];
|
||||
u32 test2[42];
|
||||
|
|
Loading…
Reference in New Issue