Crypto++  5.6.5
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 // http://connect.microsoft.com/VisualStudio/feedback/details/1600701/type-info-does-not-compile-with-has-exceptions-0
24 #if defined(_MSC_VER) && (_MSC_VER < 1900) && defined(_HAS_EXCEPTIONS) && (_HAS_EXCEPTIONS == 0)
25 namespace std {
26  using ::type_info;
27 }
28 #endif
29 
30 // make_unchecked_array_iterator
31 #if _MSC_VER >= 1600
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 #if defined(CRYPTOPP_CXX11_RVALUES)
44 # include <utility>
45 #endif
46 
47 #include <cstdlib>
48 #include <cstddef>
49 #include <cstring>
50 #include <climits>
51 
52 // uintptr_t and ptrdiff_t
53 #if (__cplusplus < 201103L) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
54 # include <stdint.h>
55 #elif defined(_MSC_VER) && (_MSC_VER < 1700)
56 # include <stddef.h>
57 #endif
58 
59 // workaround needed on Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
60 #ifdef CRYPTOPP_INCLUDE_VECTOR_CC
61 # include <vector.cc>
62 #endif
63 
64 // for alloca
65 #if defined(CRYPTOPP_BSD_AVAILABLE)
66 # include <stdlib.h>
67 #elif defined(CRYPTOPP_UNIX_AVAILABLE) || defined(__sun) || defined(QNX)
68 # include <alloca.h>
69 #elif defined(CRYPTOPP_WIN32_AVAILABLE) || defined(__MINGW32__) || defined(__BORLANDC__)
70 # include <malloc.h>
71 #endif
72 
73 #ifdef _MSC_VER
74 # pragma warning(disable: 4231) // re-disable this
75 # ifdef _CRTAPI1
76 # define CRYPTOPP_MSVCRT6
77 # endif
78 #endif
79 
80 #endif
STL namespace.