clean-up
This commit is contained in:
parent
828b29e8e6
commit
8b07a431aa
1 changed files with 4 additions and 18 deletions
|
@ -41,7 +41,7 @@
|
||||||
# define NAMEOF_HAS_CONSTEXPR14 1
|
# define NAMEOF_HAS_CONSTEXPR14 1
|
||||||
# define NAMEOF_CONSTEXPR14 constexpr
|
# define NAMEOF_CONSTEXPR14 constexpr
|
||||||
#else
|
#else
|
||||||
# define NAMEOF_CONSTEXPR14 /*constexpr*/
|
# define NAMEOF_CONSTEXPR14 inline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(__clang__) || defined(_MSC_VER)) || (defined(__GNUC__) && __GNUC__ >= 5)
|
#if (defined(__clang__) || defined(_MSC_VER)) || (defined(__GNUC__) && __GNUC__ >= 5)
|
||||||
|
@ -51,13 +51,6 @@
|
||||||
# define NAMEOF_TYPE_CONSTEXPR inline
|
# define NAMEOF_TYPE_CONSTEXPR inline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
|
|
||||||
# define NAMEOF_HAS_CONSTEXPR17 1
|
|
||||||
# define NAMEOF_CONSTEXPR17 constexpr
|
|
||||||
#else
|
|
||||||
# define NAMEOF_CONSTEXPR17 /*constexpr*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace nameof {
|
namespace nameof {
|
||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
@ -72,15 +65,12 @@ struct identity {
|
||||||
} // namespace nstd
|
} // namespace nstd
|
||||||
|
|
||||||
constexpr bool StrEquals(const char* lhs, const char* rhs, std::size_t size) {
|
constexpr bool StrEquals(const char* lhs, const char* rhs, std::size_t size) {
|
||||||
#if defined(NAMEOF_HAS_CONSTEXPR17)
|
#if defined(NAMEOF_HAS_CONSTEXPR14)
|
||||||
return std::char_traits<char>::compare(lhs, rhs, size) == 0;
|
|
||||||
#elif defined(NAMEOF_HAS_CONSTEXPR14)
|
|
||||||
for (std::size_t i = 0; i < size; ++i) {
|
for (std::size_t i = 0; i < size; ++i) {
|
||||||
if (lhs[i] != rhs[i]) {
|
if (lhs[i] != rhs[i]) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
#else
|
#else
|
||||||
return (size == 0) ? (lhs[0] == rhs[0]) : (lhs[size - 1] == rhs[size - 1] && StrEquals(lhs, rhs, size - 1));
|
return (size == 0) ? (lhs[0] == rhs[0]) : (lhs[size - 1] == rhs[size - 1] && StrEquals(lhs, rhs, size - 1));
|
||||||
|
@ -88,16 +78,12 @@ constexpr bool StrEquals(const char* lhs, const char* rhs, std::size_t size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr std::size_t StrLen(const char* str, std::size_t size = 0) {
|
constexpr std::size_t StrLen(const char* str, std::size_t size = 0) {
|
||||||
#if defined(NAMEOF_HAS_CONSTEXPR17)
|
#if defined(NAMEOF_HAS_CONSTEXPR14)
|
||||||
(void)size;
|
|
||||||
return std::char_traits<char>::length(str);
|
|
||||||
#elif defined(NAMEOF_HAS_CONSTEXPR14)
|
|
||||||
for (; str != nullptr; ++size) {
|
for (; str != nullptr; ++size) {
|
||||||
if (str[size] == '\0') {
|
if (str[size] == '\0') {
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return size;
|
return size;
|
||||||
#else
|
#else
|
||||||
return (str[size] == '\0') ? size : StrLen(str, size + 1);
|
return (str[size] == '\0') ? size : StrLen(str, size + 1);
|
||||||
|
@ -172,7 +158,7 @@ class cstring final {
|
||||||
|
|
||||||
constexpr cstring substr(std::size_t pos, std::size_t n) const { return {str_ + pos, n}; }
|
constexpr cstring substr(std::size_t pos, std::size_t n) const { return {str_ + pos, n}; }
|
||||||
|
|
||||||
NAMEOF_CONSTEXPR17 int compare(cstring other) const {
|
int compare(cstring other) const {
|
||||||
if (const auto result = std::char_traits<char>::compare(str_, other.str_, other.size_ < size_ ? other.size_ : size_))
|
if (const auto result = std::char_traits<char>::compare(str_, other.str_, other.size_ < size_ ? other.size_ : size_))
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue