mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-11-14 10:39:05 +00:00
89 lines
4 KiB
C++
89 lines
4 KiB
C++
#ifndef SPROUT_CONFIG_CONFIG_HPP
|
|
#define SPROUT_CONFIG_CONFIG_HPP
|
|
|
|
#include <sprout/config/compiler.hpp>
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_AUTO_CONFIG
|
|
# include <sprout/config/auto_config.hpp>
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_AUTO_CONFIG
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR
|
|
# define SPROUT_CONSTEXPR constexpr
|
|
# define SPROUT_CONSTEXPR_OR_CONST constexpr
|
|
# define SPROUT_STATIC_CONSTEXPR static constexpr
|
|
#
|
|
# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(EXPR) = EXPR
|
|
# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(EXPR)
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR
|
|
# define SPROUT_CONSTEXPR
|
|
# define SPROUT_CONSTEXPR_OR_CONST const
|
|
# define SPROUT_STATIC_CONSTEXPR static const
|
|
#
|
|
# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_INNER(EXPR)
|
|
# define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(EXPR) = EXPR
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
|
|
# define SPROUT_NOEXCEPT noexcept
|
|
# define SPROUT_NOEXCEPT_EXPR(EXPR) noexcept(EXPR)
|
|
# define SPROUT_NOEXCEPT_EXPR_OR_DEFAULT(EXPR, C) noexcept(EXPR)
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
|
|
# define SPROUT_NOEXCEPT
|
|
# define SPROUT_NOEXCEPT_EXPR(EXPR)
|
|
# define SPROUT_NOEXCEPT_EXPR_OR_DEFAULT(EXPR, C) C
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
|
# define SPROUT_USE_TEMPLATE_ALIASES 1
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
|
# define SPROUT_USE_TEMPLATE_ALIASES 0
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
|
|
# define SPROUT_USE_USER_DEFINED_LITERALS 1
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
|
|
# define SPROUT_USE_USER_DEFINED_LITERALS 0
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
|
|
# define SPROUT_USE_DELEGATING_CONSTRUCTORS 1
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
|
|
# define SPROUT_USE_DELEGATING_CONSTRUCTORS 0
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
|
|
|
|
#ifndef SPROUT_CONFIG_USE_SSCRISK_CEL
|
|
# define HDR_FUNCTIONAL_SSCRISK_CEL_OR_SPROUT <sprout/functional/functor.hpp>
|
|
# define HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT <sprout/algorithm/non_modifying.hpp>
|
|
# define HDR_NUMERIC_SSCRISK_CEL_OR_SPROUT <sprout/numeric/non_modifying.hpp>
|
|
# define HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT <sprout/iterator/operation.hpp>
|
|
# define NS_SSCRISK_CEL_OR_SPROUT sprout
|
|
#else // #ifndef SPROUT_CONFIG_USE_SSCRISK_CEL
|
|
# define HDR_FUNCTIONAL_SSCRISK_CEL_OR_SPROUT <sscrisk/cel/functional.hpp>
|
|
# define HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT <sscrisk/cel/algorithm.hpp>
|
|
# define HDR_NUMERIC_SSCRISK_CEL_OR_SPROUT <sscrisk/cel/numeric.hpp>
|
|
# define HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT <sscrisk/cel/iterator.hpp>
|
|
# define NS_SSCRISK_CEL_OR_SPROUT sscrisk::cel
|
|
#endif // #ifndef SPROUT_CONFIG_USE_SSCRISK_CEL
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
|
|
# define SPROUT_USE_BUILTIN_CMATH_FUNCTION 1
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
|
|
# define SPROUT_USE_BUILTIN_CMATH_FUNCTION 0
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
|
|
# define SPROUT_USE_BUILTIN_BIT_OPERATION 1
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
|
|
# define SPROUT_USE_BUILTIN_BIT_OPERATION 0
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
|
|
|
|
#ifndef SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
# define SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION 1
|
|
#else // #ifndef SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
# ifdef SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
# error config conflict: SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION, SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
# endif // #ifndef SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
# define SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION 0
|
|
#endif // #ifndef SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
|
|
|
|
#endif // #ifndef SPROUT_CONFIG_CONFIG_HPP
|