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 #include <cstdlib>
40 #include <cstddef>
41 #include <cstring>
42 #include <climits>
43 #include <cassert>
44 
45 #ifdef CRYPTOPP_INCLUDE_VECTOR_CC
46 // workaround needed on Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
47 #include <vector.cc>
48 #endif
49 
50 // for alloca
51 #if defined(CRYPTOPP_BSD_AVAILABLE)
52 #include <stdlib.h>
53 #elif defined(CRYPTOPP_UNIX_AVAILABLE) || defined(__sun) || defined(QNX)
54 #include <alloca.h>
55 #elif defined(CRYPTOPP_WIN32_AVAILABLE) || defined(__MINGW32__) || defined(__BORLANDC__)
56 #include <malloc.h>
57 #endif
58 
59 #ifdef _MSC_VER
60 #pragma warning(disable: 4231) // re-disable this
61 #ifdef _CRTAPI1
62 #define CRYPTOPP_MSVCRT6
63 #endif
64 #endif
65 
66 #endif
STL namespace.