Crypto++  5.6.3
Free C++ class library of cryptographic schemes
stdcpp.h
1 #ifndef CRYPTOPP_STDCPP_H
2 #define CRYPTOPP_STDCPP_H
3 
4 #if _MSC_VER >= 1500
5 #define _DO_NOT_DECLARE_INTERLOCKED_INTRINSICS_IN_MEMORY
6 #include <intrin.h>
7 #endif
8 
9 #include <string>
10 #include <memory>
11 #include <exception>
12 #include <typeinfo>
13 #include <algorithm>
14 #include <functional>
15 #include <utility>
16 #include <vector>
17 #include <limits>
18 #include <deque>
19 #include <list>
20 #include <map>
21 #include <new>
22 
23 #if defined(_MSC_VER) && (_MSC_VER < 1900) && defined(_HAS_EXCEPTIONS) && (_HAS_EXCEPTIONS == 0)
24 // Workaround for: https://connect.microsoft.com/VisualStudio/feedback/details/1600701/type-info-does-not-compile-with-has-exceptions-0
25 namespace std {
26  using ::type_info;
27 }
28 #endif
29 
30 #if _MSC_VER >= 1600
31 // for make_unchecked_array_iterator
32 #include <iterator>
33 #endif
34 
35 #if defined(CRYPTOPP_CXX11_ATOMICS)
36 #include <atomic>
37 #endif
38 
39 #if defined(CRYPTOPP_CXX11_SYNCHRONIZATION)
40 #include <mutex>
41 #endif
42 
43 #include <cstdlib>
44 #include <cstddef>
45 #include <cstring>
46 #include <climits>
47 #include <cassert>
48 
49 #ifdef CRYPTOPP_INCLUDE_VECTOR_CC
50 // workaround needed on Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
51 #include <vector.cc>
52 #endif
53 
54 // for alloca
55 #if defined(CRYPTOPP_BSD_AVAILABLE)
56 #include <stdlib.h>
57 #elif defined(CRYPTOPP_UNIX_AVAILABLE) || defined(__sun) || defined(QNX)
58 #include <alloca.h>
59 #elif defined(CRYPTOPP_WIN32_AVAILABLE) || defined(__MINGW32__) || defined(__BORLANDC__)
60 #include <malloc.h>
61 #endif
62 
63 #ifdef _MSC_VER
64 #pragma warning(disable: 4231) // re-disable this
65 #ifdef _CRTAPI1
66 #define CRYPTOPP_MSVCRT6
67 #endif
68 #endif
69 
70 #endif
STL namespace.