Micro template library
A library for building device drivers
Vous ne pouvez pas sélectionner plus de 25 sujets
Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
|
- /*!
- * \file utl/core/version.h
- * \brief utl version and cpp version checks
- */
- #ifndef __utl_core_version_h__
- #define __utl_core_version_h__
-
- //!\addtogroup core
- //! @{
-
- //! \defgroup version Version
- //! Definitions of the utl version and compiler features
- //!@{
-
- //! utl version as string
- #define UTL_VERSION "0.1.0"
- #define UTL_VERSION_MAJOR 0
- #define UTL_VERSION_MINOR 1
- #define UTL_VERSION_PATCH 0
-
- //! utl version as integer
- //!
- //! This can be used in the user files to check for uTL versions.
- //! The version number is constructed using:\n
- //! \f$ ver = (Maj*10000 + Min*100 + Patch) \f$
- #define UTL_VERSION_VALUE ( (UTL_VERSION_MAJOR * 10000) \
- + (UTL_VERSION_MINOR * 100) \
- + UTL_VERSION_PATCH)
-
- //!@}
-
- //! \name Compiler and feature checks
- //! These checks are used inside uTL, but the user is free to use the as well.
- //! @{
- #define CXX_VER __cplusplus //!< Current compiler's version
- #define CXX_VER_STD_11 201103L //!< C++11
- #define CXX_VER_STD_14 201402L //!< C++14
- #define CXX_VER_STD_17 201703L //!< C++17
-
- //! \def CXX_VARIABLE_TEMPLATES
- //! Check for variable templates (Non-zero if available)
- #ifndef CXX_VARIABLE_TEMPLATES
- #ifdef __cpp_variable_templates
- #define CXX_VARIABLE_TEMPLATES __cpp_variable_templates
- #else
- #define CXX_VARIABLE_TEMPLATES (CXX_VER >= CXX_VER_STD_14)
- #endif
- #endif
-
- //! \def CXX_CONCEPTS
- //! Check for concepts (Non-zero if available)
- #ifndef CXX_CONCEPTS
- #ifdef __cpp_concepts
- #define CXX_CONCEPTS __cpp_concepts
- #else
- #define CXX_CONCEPTS 0
- #endif
- #endif
-
- //! \def CXX_INLINE_VARIABLES
- //! Check for inline variables (Non-zero if available)
- #ifndef CXX_INLINE_VARIABLES
- #ifdef __cpp_inline_variables
- #define CXX_INLINE_VARIABLES __cpp_inline_variables
- #else
- #define CXX_INLINE_VARIABLES (CXX_VER >= CXX_VER_STD_17)
- #endif
- #endif
-
- //! \def CXX_FOLD_EXPRESSIONS
- //! Check for fold expressions (Non-zero if available)
- #ifndef CXX_FOLD_EXPRESSIONS
- #ifdef __cpp_fold_expressions
- #define CXX_FOLD_EXPRESSIONS __cpp_fold_expressions
- #else
- #define CXX_FOLD_EXPRESSIONS (CXX_VER >= CXX_VER_STD_17)
- #endif
- #endif
-
- //! @}
-
-
- //! \name Workaround inspections
- //! @{
-
- #if defined(__GNUC__) && (__GNUC__ < 5)
- // https://wg21.link/cwg1558
- #define UTL_WORKAROUND_CWG_1558
- #endif
-
- //! Base library requirement
- #if CXX_VER < CXX_VER_STD_14
- #error "uTL requires C++14"
- #endif
-
- //! @}
-
- //! @}
- #endif /* #ifndef __utl_core_version_h__ */
|