mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-24 22:47:25 +00:00
chore: Remove anonymous namespace from GeneralUtils.h (#1460)
* remove anonymous namespace from GeneralUtils.h * Put helper functions in nested details namespace to hide from hinting * rename implementation functions to use lower case, leading underscore and move definitions to source file
This commit is contained in:
parent
f38537aece
commit
5ae8fd8e0e
@ -319,3 +319,25 @@ std::vector<std::string> GeneralUtils::GetSqlFileNamesFromFolder(const std::stri
|
|||||||
|
|
||||||
return sortedFiles;
|
return sortedFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DARKFLAME_PLATFORM_MACOS
|
||||||
|
|
||||||
|
// MacOS floating-point parse function specializations
|
||||||
|
namespace GeneralUtils::details {
|
||||||
|
template <>
|
||||||
|
[[nodiscard]] float _parse<float>(const std::string_view str, size_t& parseNum) {
|
||||||
|
return std::stof(std::string{ str }, &parseNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
[[nodiscard]] double _parse<double>(const std::string_view str, size_t& parseNum) {
|
||||||
|
return std::stod(std::string{ str }, &parseNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
[[nodiscard]] long double _parse<long double>(const std::string_view str, size_t& parseNum) {
|
||||||
|
return std::stold(std::string{ str }, &parseNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@ -168,25 +168,10 @@ namespace GeneralUtils {
|
|||||||
|
|
||||||
#ifdef DARKFLAME_PLATFORM_MACOS
|
#ifdef DARKFLAME_PLATFORM_MACOS
|
||||||
|
|
||||||
// Anonymous namespace containing MacOS floating-point parse function specializations
|
// MacOS floating-point parse helper function specializations
|
||||||
namespace {
|
namespace details {
|
||||||
template <std::floating_point T>
|
template <std::floating_point T>
|
||||||
[[nodiscard]] T Parse(const std::string_view str, size_t* parseNum);
|
[[nodiscard]] T _parse(const std::string_view str, size_t& parseNum);
|
||||||
|
|
||||||
template <>
|
|
||||||
[[nodiscard]] float Parse<float>(const std::string_view str, size_t* parseNum) {
|
|
||||||
return std::stof(std::string{ str }, parseNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
|
||||||
[[nodiscard]] double Parse<double>(const std::string_view str, size_t* parseNum) {
|
|
||||||
return std::stod(std::string{ str }, parseNum);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <>
|
|
||||||
[[nodiscard]] long double Parse<long double>(const std::string_view str, size_t* parseNum) {
|
|
||||||
return std::stold(std::string{ str }, parseNum);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -196,9 +181,10 @@ namespace GeneralUtils {
|
|||||||
* @returns An std::optional containing the desired value if it is equivalent to the string
|
* @returns An std::optional containing the desired value if it is equivalent to the string
|
||||||
*/
|
*/
|
||||||
template <std::floating_point T>
|
template <std::floating_point T>
|
||||||
[[nodiscard]] std::optional<T> TryParse(const std::string_view str) noexcept try {
|
[[nodiscard]] std::optional<T> TryParse(const std::string_view str) noexcept
|
||||||
|
try {
|
||||||
size_t parseNum;
|
size_t parseNum;
|
||||||
const T result = Parse<T>(str, &parseNum);
|
const T result = details::_parse<T>(str, parseNum);
|
||||||
const bool isParsed = str.length() == parseNum;
|
const bool isParsed = str.length() == parseNum;
|
||||||
|
|
||||||
return isParsed ? result : std::optional<T>{};
|
return isParsed ? result : std::optional<T>{};
|
||||||
|
Loading…
Reference in New Issue
Block a user