[ox/std] Remove implicit signed/unsigned conversions
This commit is contained in:
parent
40dac704d0
commit
9f78e2320f
4
deps/ox/src/ox/std/bitops.hpp
vendored
4
deps/ox/src/ox/std/bitops.hpp
vendored
@ -8,10 +8,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "types.hpp"
|
||||
|
||||
namespace ox {
|
||||
|
||||
template<typename T>
|
||||
[[nodiscard]] inline constexpr T rotateLeft(T i, int shift) {
|
||||
[[nodiscard]] inline constexpr T rotateLeft(T i, std::size_t shift) {
|
||||
constexpr auto bits = sizeof(i) * 8;
|
||||
return (i << shift) | (i >> (bits - shift));
|
||||
}
|
||||
|
4
deps/ox/src/ox/std/error.hpp
vendored
4
deps/ox/src/ox/std/error.hpp
vendored
@ -8,7 +8,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "types.hpp"
|
||||
#include "typetraits.hpp"
|
||||
|
||||
#ifdef DEBUG
|
||||
#define OxError(x) ox::_error(__FILE__, __LINE__, x)
|
||||
@ -48,7 +48,7 @@ static constexpr Error _errorTags(Error line, Error errCode) {
|
||||
return errCode | line;
|
||||
}
|
||||
|
||||
static constexpr Error _error(const char *file, int line, Error errCode) {
|
||||
static constexpr Error _error(const char *file, uint32_t line, Error errCode) {
|
||||
return errCode ? reinterpret_cast<uint64_t>(file) | _errorTags(line, errCode) : 0;
|
||||
}
|
||||
|
||||
|
8
deps/ox/src/ox/std/memops.cpp
vendored
8
deps/ox/src/ox/std/memops.cpp
vendored
@ -24,18 +24,18 @@ int ox_memcmp(const void *ptr1, const void *ptr2, std::size_t size) noexcept {
|
||||
return retval;
|
||||
}
|
||||
|
||||
void *ox_memcpy(void *dest, const void *src, int64_t size) noexcept {
|
||||
void *ox_memcpy(void *dest, const void *src, std::size_t size) noexcept {
|
||||
auto srcBuf = static_cast<const char*>(src);
|
||||
auto dstBuf = static_cast<char*>(dest);
|
||||
for (int64_t i = 0; i < size; i++) {
|
||||
for (std::size_t i = 0; i < size; i++) {
|
||||
dstBuf[i] = static_cast<char>(srcBuf[i]);
|
||||
}
|
||||
return dest;
|
||||
}
|
||||
|
||||
void *ox_memset(void *ptr, int val, int64_t size) noexcept {
|
||||
void *ox_memset(void *ptr, int val, std::size_t size) noexcept {
|
||||
auto buf = static_cast<char*>(ptr);
|
||||
for (int64_t i = 0; i < size; i++) {
|
||||
for (std::size_t i = 0; i < size; i++) {
|
||||
buf[i] = val;
|
||||
}
|
||||
return ptr;
|
||||
|
4
deps/ox/src/ox/std/memops.hpp
vendored
4
deps/ox/src/ox/std/memops.hpp
vendored
@ -11,6 +11,6 @@
|
||||
|
||||
int ox_memcmp(const void *ptr1, const void *ptr2, std::size_t size) noexcept;
|
||||
|
||||
void *ox_memcpy(void *dest, const void *src, int64_t size) noexcept;
|
||||
void *ox_memcpy(void *dest, const void *src, std::size_t size) noexcept;
|
||||
|
||||
void *ox_memset(void *ptr, int val, int64_t size) noexcept;
|
||||
void *ox_memset(void *ptr, int val, std::size_t size) noexcept;
|
||||
|
2
deps/ox/src/ox/std/string.hpp
vendored
2
deps/ox/src/ox/std/string.hpp
vendored
@ -168,7 +168,7 @@ template<std::size_t buffLen>
|
||||
constexpr std::size_t BString<buffLen>::len() const noexcept {
|
||||
std::size_t length = 0;
|
||||
for (std::size_t i = 0; i < buffLen; i++) {
|
||||
uint8_t b = m_buff[i];
|
||||
uint8_t b = static_cast<uint8_t>(m_buff[i]);
|
||||
if (b) {
|
||||
if ((b & 128) == 0) { // normal ASCII character
|
||||
length++;
|
||||
|
12
deps/ox/src/ox/std/strops.hpp
vendored
12
deps/ox/src/ox/std/strops.hpp
vendored
@ -88,9 +88,9 @@ template<typename T1, typename T2>
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr int ox_lastIndexOf(const char *str, int character, int maxLen = 0xFFFFFFFF) noexcept {
|
||||
[[nodiscard]] constexpr int ox_lastIndexOf(const char *str, int character, std::size_t maxLen = 0xFFFFFFFF) noexcept {
|
||||
int retval = -1;
|
||||
for (int i = 0; i < maxLen && str[i]; i++) {
|
||||
for (std::size_t i = 0; i < maxLen && str[i]; i++) {
|
||||
if (str[i] == character) {
|
||||
retval = i;
|
||||
}
|
||||
@ -98,9 +98,9 @@ template<typename T1, typename T2>
|
||||
return retval;
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr int ox_lastIndexOf(char *str, int character, int maxLen = 0xFFFFFFFF) noexcept {
|
||||
[[nodiscard]] constexpr int ox_lastIndexOf(char *str, int character, std::size_t maxLen = 0xFFFFFFFF) noexcept {
|
||||
int retval = -1;
|
||||
for (int i = 0; i < maxLen && str[i]; i++) {
|
||||
for (std::size_t i = 0; i < maxLen && str[i]; i++) {
|
||||
if (str[i] == character) {
|
||||
retval = i;
|
||||
}
|
||||
@ -120,8 +120,8 @@ template<typename T1, typename T2>
|
||||
return total;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
constexpr T ox_itoa(int64_t v, T str) noexcept {
|
||||
template<typename Integer, typename T>
|
||||
constexpr T ox_itoa(Integer v, T str) noexcept {
|
||||
if (v) {
|
||||
auto mod = 1000000000000000000;
|
||||
constexpr auto base = 10;
|
||||
|
10
deps/ox/src/ox/std/types.hpp
vendored
10
deps/ox/src/ox/std/types.hpp
vendored
@ -8,8 +8,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "bitops.hpp"
|
||||
|
||||
#if __has_include(<cstdint>)
|
||||
|
||||
#include <cstdint>
|
||||
@ -51,14 +49,6 @@ typedef uint32_t uintptr_t;
|
||||
#endif
|
||||
|
||||
|
||||
namespace ox {
|
||||
|
||||
template<typename T>
|
||||
constexpr auto MaxValue = onMask<T>();
|
||||
|
||||
}
|
||||
|
||||
|
||||
namespace std {
|
||||
|
||||
using nullptr_t = decltype(nullptr);
|
||||
|
54
deps/ox/src/ox/std/typetraits.hpp
vendored
54
deps/ox/src/ox/std/typetraits.hpp
vendored
@ -8,10 +8,13 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "types.hpp"
|
||||
#include "bitops.hpp"
|
||||
|
||||
namespace ox {
|
||||
|
||||
template<typename T>
|
||||
constexpr auto MaxValue = onMask<T>();
|
||||
|
||||
template<class T, T v>
|
||||
struct integral_constant {
|
||||
|
||||
@ -60,23 +63,46 @@ struct enable_if<true, T> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
|
||||
template<typename T>
|
||||
struct RemoveIndirection {
|
||||
|
||||
private:
|
||||
template<typename ST>
|
||||
static constexpr ST decay(ST t) {
|
||||
return t;
|
||||
}
|
||||
struct remove_pointer {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
template<typename ST>
|
||||
static constexpr ST decay(ST *t) {
|
||||
return decay(*t);
|
||||
}
|
||||
template<typename T>
|
||||
struct remove_pointer<T*> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
public:
|
||||
using type = decltype(decay(static_cast<T*>(nullptr)));
|
||||
template<typename T>
|
||||
struct remove_pointer<T* const> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct remove_pointer<T* volatile> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct remove_pointer<T* const volatile> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
|
||||
template<typename T>
|
||||
struct remove_reference {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct remove_reference<T&> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct remove_reference<T&&> {
|
||||
using type = T;
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user