Macros.hpp 827 Bytes
#pragma once

// Distributed under the 3-Clause BSD License.  See accompanying
// file LICENSE or https://github.com/CLIUtils/CLI11 for details.

namespace CLI {

// Note that all code in CLI11 must be in a namespace, even if it just a define.

// The following version macro is very similar to the one in PyBind11

#if !defined(_MSC_VER) && !defined(__INTEL_COMPILER)
#if __cplusplus >= 201402L
#define CLI11_CPP14
#if __cplusplus > 201402L /* Temporary: should be updated to >= the final C++17 value once known */
#define CLI11_CPP17
#endif
#endif
#elif defined(_MSC_VER)
// MSVC sets _MSVC_LANG rather than __cplusplus (supposedly until the standard is fully implemented)
#if _MSVC_LANG >= 201402L
#define CLI11_CPP14
#if _MSVC_LANG > 201402L && _MSC_VER >= 1910
#define CLI11_CPP17
#endif
#endif
#endif

} // namespace CLI