#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