From 3cc2d2aedf1371ecaf715da144a1cc8506949c61 Mon Sep 17 00:00:00 2001 From: Emma Broman Date: Wed, 7 Oct 2020 17:12:06 +0200 Subject: [PATCH] Fix for compile errors in Linux in exoplanets module --- modules/exoplanets/rendering/renderableorbitdisc.h | 1 + modules/exoplanets/tasks/exoplanetscsvtobintask.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+) 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 6cb232fb79..8277830923 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 {