Time Shield Library
C++ library for working with time
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1#pragma once
2#ifndef _TIME_SHIELD_CONFIG_HPP_INCLUDED
3#define _TIME_SHIELD_CONFIG_HPP_INCLUDED
4
10
11#if defined(_MSVC_LANG)
12# define TIME_SHIELD_CXX_VERSION _MSVC_LANG
13#else
14# define TIME_SHIELD_CXX_VERSION __cplusplus
15#endif
16
17// Check and define macros based on the C++ standard version
18#if TIME_SHIELD_CXX_VERSION >= 201703L
19# define TIME_SHIELD_CPP17
20#elif TIME_SHIELD_CXX_VERSION >= 201402L
21# define TIME_SHIELD_CPP14
22#elif TIME_SHIELD_CXX_VERSION >= 201103L
23# define TIME_SHIELD_CPP11
24#else
25# error "C++11 or newer is required to compile this library."
26#endif
27
28// Configure support for `constexpr` and `if constexpr` based on the C++ standard
29#ifdef TIME_SHIELD_CPP11
30# define TIME_SHIELD_IF_CONSTEXPR
31# define TIME_SHIELD_CONSTEXPR
32#else
33#ifdef TIME_SHIELD_CPP14
34# define TIME_SHIELD_IF_CONSTEXPR
35# define TIME_SHIELD_CONSTEXPR constexpr
36#else
37#ifdef TIME_SHIELD_CPP17
38# define TIME_SHIELD_IF_CONSTEXPR constexpr
39# define TIME_SHIELD_CONSTEXPR constexpr
40#endif
41#endif
42#endif
43
44#endif // _TIME_SHIELD_CONFIG_HPP_INCLUDED