/*=============================================================================
  Copyright (c) 2011-2016 Bolero MURAKAMI
  https://github.com/bolero-MURAKAMI/Sprout

  Distributed under the Boost Software License, Version 1.0. (See accompanying
  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#ifndef SPROUT_CONFIG_AUTO_CONFIG_HPP
#define SPROUT_CONFIG_AUTO_CONFIG_HPP

#include <sprout/config/compiler.hpp>
#include <sprout/config/stdlib.hpp>

//
// SPROUT_CONFIG_DISABLE_CONSTEXPR
//
#ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR
#	if defined(SPROUT_NO_CXX11_CONSTEXPR) && !defined(SPROUT_CONFIG_FORCE_CONSTEXPR)
#		define SPROUT_CONFIG_DISABLE_CONSTEXPR
#	endif	// #ifdef SPROUT_NO_CXX11_CONSTEXPR
#endif	// #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR

//
// SPROUT_CONFIG_DISABLE_CXX14_CONSTEXPR
//
#ifndef SPROUT_CONFIG_DISABLE_CXX14_CONSTEXPR
#	if defined(SPROUT_NO_CXX14_CONSTEXPR) && !defined(SPROUT_CONFIG_FORCE_CXX14_CONSTEXPR)
#		define SPROUT_CONFIG_DISABLE_CXX14_CONSTEXPR
#	endif	// #ifdef SPROUT_NO_CXX14_CONSTEXPR
#endif	// #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR

//
// SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS
//
#ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS
#	if defined(SPROUT_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(SPROUT_CONFIG_FORCE_DEFAULTED_FUNCTIONS)
#		define SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS
#	endif	// #ifdef SPROUT_NO_CXX11_CONSTEXPR
#endif	// #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS

//
// SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS
//
#ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS
#	if defined(SPROUT_NO_CXX11_DELETED_FUNCTIONS) && !defined(SPROUT_CONFIG_FORCE_DELETED_FUNCTIONS)
#		define SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS
#	endif	// #ifdef SPROUT_NO_CXX11_CONSTEXPR
#endif	// #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS

//
// SPROUT_CONFIG_DISABLE_EXPLICIT_CONVERSION_OPERATORS
//
#ifndef SPROUT_CONFIG_DISABLE_EXPLICIT_CONVERSION_OPERATORS
#	if defined(SPROUT_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(SPROUT_CONFIG_FORCE_EXPLICIT_CONVERSION_OPERATORS)
#		define SPROUT_CONFIG_DISABLE_EXPLICIT_CONVERSION_OPERATORS
#	endif	// #ifdef SPROUT_NO_CXX11_CONSTEXPR
#endif	// #ifndef SPROUT_CONFIG_DISABLE_EXPLICIT_CONVERSION_OPERATORS

//
// SPROUT_CONFIG_DISABLE_NOEXCEPT
//
#ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT
#	if defined(SPROUT_NO_CXX11_NOEXCEPT) && !defined(SPROUT_CONFIG_FORCE_NOEXCEPT)
#		define SPROUT_CONFIG_DISABLE_NOEXCEPT
#	endif	// #ifdef SPROUT_NO_CXX11_NOEXCEPT
#endif	// #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT

//
// SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
//
#ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
#	if defined(SPROUT_NO_CXX11_TEMPLATE_ALIASES) && !defined(SPROUT_CONFIG_FORCE_TEMPLATE_ALIASES)
#		define SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES
#	endif	// #ifdef SPROUT_NO_CXX11_TEMPLATE_ALIASES
#endif	// #ifndef SPROUT_CONFIG_DISABLE_TEMPLATE_ALIASES

//
// SPROUT_USE_USER_DEFINED_LITERALS
//
#ifndef SPROUT_USE_USER_DEFINED_LITERALS
#	if defined(SPROUT_NO_CXX11_USER_DEFINED_LITERALS) && !defined(SPROUT_CONFIG_FORCE_USER_DEFINED_LITERALS)
#		define SPROUT_CONFIG_DISABLE_USER_DEFINED_LITERALS
#	endif	// #ifdef SPROUT_NO_CXX11_USER_DEFINED_LITERALS
#endif	// #ifndef SPROUT_USE_USER_DEFINED_LITERALS

//
// SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
//
#ifndef SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
#	if defined(SPROUT_NO_CXX11_DELEGATING_CONSTRUCTORS) && !defined(SPROUT_CONFIG_FORCE_DELEGATING_CONSTRUCTORS)
#		define SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS
#	endif	// #ifdef SPROUT_NO_CXX11_DELEGATING_CONSTRUCTORS
#endif	// #ifndef SPROUT_CONFIG_DISABLE_DELEGATING_CONSTRUCTORS

//
// SPROUT_CONFIG_DISABLE_UNICODE_LITERALS
//
#ifndef SPROUT_CONFIG_DISABLE_UNICODE_LITERALS
#	if defined(SPROUT_NO_CXX11_UNICODE_LITERALS) && !defined(SPROUT_CONFIG_FORCE_UNICODE_LITERALS)
#		define SPROUT_CONFIG_DISABLE_UNICODE_LITERALS
#	endif	// #ifdef SPROUT_NO_CXX11_UNICODE_LITERALS
#endif	// #ifndef SPROUT_CONFIG_DISABLE_UNICODE_LITERALS

//
// SPROUT_CONFIG_DISABLE_VARIABLE_TEMPLATES
//
#ifndef SPROUT_CONFIG_DISABLE_VARIABLE_TEMPLATES
#	if defined(SPROUT_NO_CXX14_VARIABLE_TEMPLATES) && !defined(SPROUT_CONFIG_FORCE_VARIABLE_TEMPLATES)
#		define SPROUT_CONFIG_DISABLE_VARIABLE_TEMPLATES
#	endif	// #ifdef SPROUT_NO_CXX14_VARIABLE_TEMPLATES
#endif	// #ifndef SPROUT_CONFIG_DISABLE_VARIABLE_TEMPLATES

//
// SPROUT_CONFIG_USE_SSCRISK_CEL
//

//
// SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
//
#ifndef SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
#	ifndef SPROUT_HAS_CONSTEXPR_CMATH_FUNCTION
#		define SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION
#	endif	// #ifdef SPROUT_HAS_CONSTEXPR_CMATH_FUNCTION
#endif	// #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_CMATH_FUNCTION

//
// SPROUT_CONFIG_DISABLE_BUILTIN_COPYSIGN_FUNCTION
//
#ifndef SPROUT_CONFIG_DISABLE_BUILTIN_COPYSIGN_FUNCTION
#	ifndef SPROUT_HAS_CONSTEXPR_COPYSIGN_FUNCTION
#		define SPROUT_CONFIG_DISABLE_BUILTIN_COPYSIGN_FUNCTION
#	endif	// #ifdef SPROUT_HAS_CONSTEXPR_COPYSIGN_FUNCTION
#endif	// #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_COPYSIGN_FUNCTION

//
// SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
//
#ifndef SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
#	ifndef SPROUT_HAS_CONSTEXPR_BIT_OPERATION
#		define SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION
#	endif	// #ifdef SPROUT_HAS_CONSTEXPR_BIT_OPERATION
#endif	// #ifndef SPROUT_CONFIG_DISABLE_BUILTIN_BIT_OPERATION

//
// SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
// SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION
//
#ifndef SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION
#	define SPROUT_CONFIG_SUPPORT_TEMPORARY_CONTAINER_ITERATION
#endif	// #ifndef SPROUT_CONFIG_DISABLE_SUPPORT_TEMPORARY_CONTAINER_ITERATION

#include <sprout/config/suffix.hpp>

#endif	// #ifndef SPROUT_CONFIG_AUTO_CONFIG_HPP
