diff --git a/modules/exoplanets/rendering/renderableorbitdisc.h b/modules/exoplanets/rendering/renderableorbitdisc.h index 3cae6e64c4..3a78546596 100644 --- a/modules/exoplanets/rendering/renderableorbitdisc.h +++ b/modules/exoplanets/rendering/renderableorbitdisc.h @@ -30,6 +30,7 @@ #include #include #include +#include #include namespace ghoul::filesystem { class File; } diff --git a/modules/exoplanets/tasks/exoplanetscsvtobintask.cpp b/modules/exoplanets/tasks/exoplanetscsvtobintask.cpp index fe9a840b31..d9120a6416 100644 --- a/modules/exoplanets/tasks/exoplanetscsvtobintask.cpp +++ b/modules/exoplanets/tasks/exoplanetscsvtobintask.cpp @@ -95,21 +95,31 @@ void ExoplanetsCsvToBinTask::perform(const Task::ProgressCallback& progressCallb LINFOC("CSVTOBIN", fmt::format("Loading {} stars", total)); auto readFloatData = [](const std::string& str) -> float { + #ifdef WIN32 float result; auto [p, ec] = std::from_chars(str.data(), str.data() + str.size(), result); if (ec == std::errc()) { return result; } return NAN; + #else + // clang is missing float support for std::from_chars + return !str.empty() ? std::stof(str.c_str(), nullptr) : NAN; + #endif }; auto readDoubleData = [](const std::string& str) -> double { + #ifdef WIN32 double result; auto [p, ec] = std::from_chars(str.data(), str.data() + str.size(), result); if (ec == std::errc()) { return result; } return NAN; + #else + // clang is missing double support for std::from_chars + return !str.empty() ? std::stod(str.c_str(), nullptr) : NAN; + #endif }; auto readIntegerData = [](const std::string& str) -> int {