29#ifndef CRYPTOPP_CONFIG_CXX_H
30#define CRYPTOPP_CONFIG_CXX_H
42#if (defined(_MSC_VER) && _MSC_VER <= 1300) || defined(__MWERKS__) || (defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x450) || defined(_STLP_NO_UNCAUGHT_EXCEPT_SUPPORT)))
43#define CRYPTOPP_DISABLE_UNCAUGHT_EXCEPTION
47#ifndef CRYPTOPP_DISABLE_UNCAUGHT_EXCEPTION
48# define CRYPTOPP_UNCAUGHT_EXCEPTION_AVAILABLE 1
49# define CRYPTOPP_CXX98_UNCAUGHT_EXCEPTION 1
54# define __has_feature(x) 0
68#if !defined(CRYPTOPP_NO_CXX11)
69# if ((_MSC_VER >= 1600) || (__cplusplus >= 201103L)) && !defined(_STLPORT_VERSION)
70# define CRYPTOPP_CXX11 1
80#if defined(__APPLE__) && defined(__clang__)
81# if !(defined(__has_include) && __has_include(<forward_list>))
87#if defined(CRYPTOPP_CXX11) && !defined(CRYPTOPP_NO_CXX14)
88# if ((_MSC_VER >= 1900) || (__cplusplus >= 201402L)) && !defined(_STLPORT_VERSION)
89# define CRYPTOPP_CXX14 1
94#if defined(CRYPTOPP_CXX14) && !defined(CRYPTOPP_NO_CXX17)
95# if ((_MSC_VER >= 1900) || (__cplusplus >= 201703L)) && !defined(_STLPORT_VERSION)
96# define CRYPTOPP_CXX17 1
102#if defined(CRYPTOPP_CXX11)
105#if (CRYPTOPP_MSC_VERSION >= 1700) || __has_feature(cxx_atomic) || \
106 (__INTEL_COMPILER >= 1300) || (CRYPTOPP_GCC_VERSION >= 40400) || (__SUNPRO_CC >= 0x5140)
107# define CRYPTOPP_CXX11_ATOMIC 1
112#if (CRYPTOPP_MSC_VERSION >= 1700) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30300) || \
113 (CRYPTOPP_APPLE_CLANG_VERSION >= 50000) || (__INTEL_COMPILER >= 1200) || \
114 (CRYPTOPP_GCC_VERSION >= 40400) || (__SUNPRO_CC >= 0x5130)
121# if !defined(__GLIBCXX__) || defined(_GLIBCXX_HAS_GTHREADS)
122# define CRYPTOPP_CXX11_SYNCHRONIZATION 1
131#if (__cpp_threadsafe_static_init >= 200806) || \
132 (CRYPTOPP_MSC_VERSION >= 1900) && ((WINVER >= 0x0600) || (_WIN32_WINNT >= 0x0600)) || \
133 (CRYPTOPP_LLVM_CLANG_VERSION >= 20900) || (CRYPTOPP_APPLE_CLANG_VERSION >= 40000) || \
134 (__INTEL_COMPILER >= 1110) || (CRYPTOPP_GCC_VERSION >= 40300) || (__SUNPRO_CC >= 0x5130)
135# define CRYPTOPP_CXX11_STATIC_INIT 1
139#if (CRYPTOPP_MSC_VERSION >= 1800) || (CRYPTOPP_LLVM_CLANG_VERSION >= 20900) || \
140 (CRYPTOPP_APPLE_CLANG_VERSION >= 40000) || (__INTEL_COMPILER >= 1210) || \
141 (CRYPTOPP_GCC_VERSION >= 40300) || (__SUNPRO_CC >= 0x5130)
142# define CRYPTOPP_CXX11_DELETED_FUNCTIONS 1
146#if (CRYPTOPP_MSC_VERSION >= 1900) || __has_feature(cxx_alignas) || \
147 (__INTEL_COMPILER >= 1500) || (CRYPTOPP_GCC_VERSION >= 40800) || (__SUNPRO_CC >= 0x5130)
148# define CRYPTOPP_CXX11_ALIGNAS 1
152#if (CRYPTOPP_MSC_VERSION >= 1900) || __has_feature(cxx_alignof) || \
153 (__INTEL_COMPILER >= 1500) || (CRYPTOPP_GCC_VERSION >= 40500) || (__SUNPRO_CC >= 0x5130)
154# define CRYPTOPP_CXX11_ALIGNOF 1
158#if (CRYPTOPP_MSC_VERSION >= 1800) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30100) || \
159 (CRYPTOPP_APPLE_CLANG_VERSION >= 40000) || (__INTEL_COMPILER >= 1400) || \
160 (CRYPTOPP_GCC_VERSION >= 40400) || (__SUNPRO_CC >= 0x5130)
161# define CRYPTOPP_CXX11_INITIALIZER_LIST 1
165#if (CRYPTOPP_MSC_VERSION >= 1700) || __has_feature(cxx_lambdas) || \
166 (__INTEL_COMPILER >= 1200) || (CRYPTOPP_GCC_VERSION >= 40900) || (__SUNPRO_CC >= 0x5140)
167# define CRYPTOPP_CXX11_LAMBDA 1
171#if (CRYPTOPP_MSC_VERSION >= 1900) || __has_feature(cxx_noexcept) || \
172 (__INTEL_COMPILER >= 1400) || (CRYPTOPP_GCC_VERSION >= 40600) || (__SUNPRO_CC >= 0x5130)
173# define CRYPTOPP_CXX11_NOEXCEPT 1
177#if (__cpp_variadic_templates >= 200704) || __has_feature(cxx_variadic_templates) || \
178 (CRYPTOPP_MSC_VERSION >= 1800) || (__INTEL_COMPILER >= 1210) || \
179 (CRYPTOPP_GCC_VERSION >= 40300) || (__SUNPRO_CC >= 0x5130)
180# define CRYPTOPP_CXX11_VARIADIC_TEMPLATES 1
185#if (__cpp_constexpr >= 200704) || __has_feature(cxx_constexpr) || \
186 (CRYPTOPP_MSC_VERSION >= 1900) || (__INTEL_COMPILER >= 1600) || \
187 (CRYPTOPP_GCC_VERSION >= 40600) || (__SUNPRO_CC >= 0x5130)
188# define CRYPTOPP_CXX11_CONSTEXPR 1
193#if (CRYPTOPP_MSC_VERSION >= 1700) || __has_feature(cxx_strong_enums) || \
194 (__INTEL_COMPILER >= 1400) || (CRYPTOPP_GCC_VERSION >= 40400) || (__SUNPRO_CC >= 0x5120)
195# define CRYPTOPP_CXX11_STRONG_ENUM 1
199#if (CRYPTOPP_MSC_VERSION >= 1600) || __has_feature(cxx_nullptr) || \
200 (__INTEL_COMPILER >= 1000) || (CRYPTOPP_GCC_VERSION >= 40600) || \
201 (__SUNPRO_CC >= 0x5130) || defined(__IBMCPP_NULLPTR)
202# define CRYPTOPP_CXX11_NULLPTR 1
209#if defined(CRYPTOPP_CXX14)
213#if (__cpp_static_assert >= 201411)
214# define CRYPTOPP_CXX17_STATIC_ASSERT 1
222#if defined(CRYPTOPP_CXX17)
229#if defined(__clang__)
230# if __EXCEPTIONS && __has_feature(cxx_exceptions)
231# if __cpp_lib_uncaught_exceptions >= 201411L
232# define CRYPTOPP_CXX17_UNCAUGHT_EXCEPTIONS 1
235#elif (CRYPTOPP_MSC_VERSION >= 1900) || (__INTEL_COMPILER >= 1800) || \
236 (CRYPTOPP_GCC_VERSION >= 60000) || (__cpp_lib_uncaught_exceptions >= 201411L)
237# define CRYPTOPP_CXX17_UNCAUGHT_EXCEPTIONS 1
244#if defined(CRYPTOPP_CXX11_NOEXCEPT)
245# define CRYPTOPP_THROW noexcept(false)
246# define CRYPTOPP_NO_THROW noexcept(true)
248# define CRYPTOPP_THROW
249# define CRYPTOPP_NO_THROW
253#if defined(CRYPTOPP_CXX11_NULLPTR) && !defined(NULLPTR)
254# define NULLPTR nullptr
255#elif !defined(NULLPTR)
Library configuration file.
Library configuration file.
Library configuration file.