1 /* ///////////////////////////////////////////////////////////////////////
7 * Brief: The MPL Library Support
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
13 /* //////////////////////////////////////////////////////////////////// */
14 #ifndef EXTL_MPL_CONFIG_SUPPORT_H
15 #define EXTL_MPL_CONFIG_SUPPORT_H
17 #ifndef EXTL_MPL_CONFIG_H
18 # error This file must be included of extl\mpl\config\config.h
21 #ifndef EXTL_TYPE_CONFIG_H
22 # include "../type/config/config.h"
25 /* ///////////////////////////////////////////////////////////////////////
30 #ifdef EXTL_MPL_SUPPORT
31 # undef EXTL_MPL_SUPPORT
34 #if defined(__cplusplus) && \
35 defined(EXTL_TEMPLATE_SUPPORT) && \
36 defined(EXTL_TEMPLATE_SPEC_SUPPORT)
37 # define EXTL_MPL_SUPPORT
40 /* mpl::if_ support */
41 #ifdef EXTL_MPL_IF_SUPPORT
42 # undef EXTL_MPL_IF_SUPPORT
45 #if defined(EXTL_TEMPLATE_PARTIAL_SPEC_SUPPORT) || \
46 defined(EXTL_MEMBER_TEMPLATE_CLASS_SUPPORT)
47 # define EXTL_MPL_IF_SUPPORT
50 /* mpl::sqrt support */
51 #ifdef EXTL_MPL_MATH_SQRT_SUPPORT
52 # undef EXTL_MPL_MATH_SQRT_SUPPORT
55 #if defined(EXTL_TEMPLATE_PARTIAL_SPEC_SUPPORT) || \
56 defined(EXTL_MPL_IF_SUPPORT)
57 # define EXTL_MPL_MATH_SQRT_SUPPORT
60 /* mpl::pow support */
61 #ifdef EXTL_MPL_MATH_POW_SUPPORT
62 # undef EXTL_MPL_MATH_POW_SUPPORT
65 #if defined(EXTL_MPL_IF_SUPPORT)
66 # define EXTL_MPL_MATH_POW_SUPPORT
69 /* mpl::log support */
70 #ifdef EXTL_MPL_MATH_LOG_SUPPORT
71 # undef EXTL_MPL_MATH_LOG_SUPPORT
74 #if defined(EXTL_MPL_IF_SUPPORT)
75 # define EXTL_MPL_MATH_LOG_SUPPORT
79 #ifdef EXTL_MPL_MATH_PI_SUPPORT
80 # undef EXTL_MPL_MATH_PI_SUPPORT
83 #if defined(EXTL_TEMPLATE_SPEC_WITHIN_TEMPLATE_CLASS_SUPPORT) && \
84 defined(EXTL_MPL_MATH_POW_SUPPORT) && \
85 !EXTL_WORKAROUND_DMC(==, 0x840)
86 # define EXTL_MPL_MATH_PI_SUPPORT
89 /* //////////////////////////////////////////////////////////////////// */
90 #endif /* EXTL_MPL_CONFIG_SUPPORT_H */
91 /* //////////////////////////////////////////////////////////////////// */