HighFive 3.0.0
HighFive - Header-only C++ HDF5 interface
Loading...
Searching...
No Matches
xtensor_header_version.hpp
Go to the documentation of this file.
1// clang-format off
2#if HIGHFIVE_XTENSOR_HEADER_VERSION == 0
3 #if __cplusplus >= 201703L
4 #if __has_include(<xtensor/xtensor.hpp>)
5 #define HIGHFIVE_XTENSOR_HEADER_VERSION 1
6 #elif __has_include(<xtensor/containers/xtensor.hpp>)
7 #define HIGHFIVE_XTENSOR_HEADER_VERSION 2
8 #else
9 #error "Unable to guess HIGHFIVE_XTENSOR_HEADER_VERSION. Please set manually."
10 #endif
11 #elif __cplusplus == 201402L
12 // XTensor 0.26 and newer require C++17. Hence, if we have C++14, only
13 // `HIGHFIVE_XTENSOR_HEADER_VERSION == 1` makes sense.
14 #define HIGHFIVE_XTENSOR_HEADER_VERSION 1
15 #elif defined(_MSC_VER) && __cplusplus == 199711L
16 #error \
17 "Use /Zc:__cplusplus to make MSVC set __cplusplus correctly or HIGHFIVE_XTENSOR_HEADER_VERSION to skip xtensor version deduction."
18 #else
19 #error "HighFive requires C++14 or newer."
20 #endif
21#endif
22// clang-format on