#ifndef SPROUT_CONFIG_SUFFIX_HPP #define SPROUT_CONFIG_SUFFIX_HPP #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_DEFAULTED_FUNCTIONS # define SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL = default; # define SPROUT_DEFAULTED_DESTRUCTOR_DECL = default; #else // #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS # define SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL {} # define SPROUT_DEFAULTED_DESTRUCTOR_DECL {} #endif // #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS # define SPROUT_DELETED_FUNCTION_DECL = delete; #else // #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS # define SPROUT_DELETED_FUNCTION_DECL ; #endif // #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS #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 # define HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT # define HDR_NUMERIC_SSCRISK_CEL_OR_SPROUT # define HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT # define NS_SSCRISK_CEL_OR_SPROUT sprout #else // #ifndef SPROUT_CONFIG_USE_SSCRISK_CEL # define HDR_FUNCTIONAL_SSCRISK_CEL_OR_SPROUT # define HDR_ALGORITHM_SSCRISK_CEL_OR_SPROUT # define HDR_NUMERIC_SSCRISK_CEL_OR_SPROUT # define HDR_ITERATOR_SSCRISK_CEL_OR_SPROUT # 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_THROW_INT_CONVERSION_OVERFLOW # define SPROUT_NOTHROW_INT_CONVERSION_OVERFLOW 1 #else // #ifndef SPROUT_CONFIG_DISABLE_THROW_INT_CONVERSION_OVERFLOW # define SPROUT_NOTHROW_INT_CONVERSION_OVERFLOW 0 #endif // #ifndef SPROUT_CONFIG_DISABLE_THROW_INT_CONVERSION_OVERFLOW #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 #ifndef SPROUT_CONFIG_DISABLE_SUPPORT_EFFICIENT_ARRAY_ITERATION # define SPROUT_USE_PTR_INDEX_ITERATOR_IMPLEMENTATION 1 #else // #ifndef SPROUT_CONFIG_DISABLE_SUPPORT_EFFICIENT_ARRAY_ITERATION # define SPROUT_USE_PTR_INDEX_ITERATOR_IMPLEMENTATION 0 #endif // #ifndef SPROUT_CONFIG_DISABLE_SUPPORT_EFFICIENT_ARRAY_ITERATION #endif // #ifndef SPROUT_CONFIG_SUFFIX_HPP