From 73e365d398e04a8a718c232c81753aa234e6aa90 Mon Sep 17 00:00:00 2001 From: "Daniel J. H" Date: Wed, 16 Nov 2016 21:07:45 +0100 Subject: [PATCH] Conditionally checks std::is_trivially_copyable only if available. (#3327) --- include/storage/io.hpp | 10 +++++++--- include/util/guidance/entry_class.hpp | 1 + include/util/isatty.hpp | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/storage/io.hpp b/include/storage/io.hpp index 807d23f35..eb973121d 100644 --- a/include/storage/io.hpp +++ b/include/storage/io.hpp @@ -5,17 +5,18 @@ #include "extractor/extractor.hpp" #include "extractor/original_edge_data.hpp" #include "extractor/query_node.hpp" +#include "util/exception.hpp" #include "util/fingerprint.hpp" #include "util/simple_logger.hpp" #include "util/static_graph.hpp" -#include "util/exception.hpp" #include #include -#include -#include #include +#include +#include +#include namespace osrm { @@ -57,8 +58,11 @@ class FileReader /* Read count objects of type T into pointer dest */ template void ReadInto(T *dest, const std::size_t count) { +#if not defined __GNUC__ or __GNUC__ > 4 static_assert(std::is_trivially_copyable::value, "bytewise reading requires trivially copyable type"); +#endif + if (count == 0) return; diff --git a/include/util/guidance/entry_class.hpp b/include/util/guidance/entry_class.hpp index 715e12395..931de35dc 100644 --- a/include/util/guidance/entry_class.hpp +++ b/include/util/guidance/entry_class.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include diff --git a/include/util/isatty.hpp b/include/util/isatty.hpp index 39f80bc75..fc8d8005d 100644 --- a/include/util/isatty.hpp +++ b/include/util/isatty.hpp @@ -10,7 +10,7 @@ #define isatty _isatty #define fileno _fileno #else -#error Unknown platform - don't know which header to include for isatty() +#error Unknown platform - isatty implementation required #endif // win32 #endif // unix @@ -29,4 +29,4 @@ inline bool IsStdoutATTY() { return isatty(fileno(stdout)); } } // namespace util } // namespace osrm -#endif \ No newline at end of file +#endif