Crypto++
7.0
Free C++ class library of cryptographic schemes
stdcpp.h
Go to the documentation of this file.
1
// stdcpp.h - originally written and placed in the public domain by Wei Dai
2
3
/// \file stdcpp.h
4
/// \brief Common C++ header files
5
6
#ifndef CRYPTOPP_STDCPP_H
7
#define CRYPTOPP_STDCPP_H
8
9
#if _MSC_VER >= 1500
10
#define _DO_NOT_DECLARE_INTERLOCKED_INTRINSICS_IN_MEMORY
11
#include <intrin.h>
12
#endif
13
14
#include <string>
15
#include <memory>
16
#include <exception>
17
#include <typeinfo>
18
#include <algorithm>
19
#include <functional>
20
#include <utility>
21
#include <vector>
22
#include <limits>
23
#include <deque>
24
#include <list>
25
#include <map>
26
#include <new>
27
28
// http://connect.microsoft.com/VisualStudio/feedback/details/1600701/type-info-does-not-compile-with-has-exceptions-0
29
#if defined(_MSC_VER) && (_MSC_VER < 1900) && defined(_HAS_EXCEPTIONS) && (_HAS_EXCEPTIONS == 0)
30
namespace
std
{
31
using ::type_info;
32
}
33
#endif
34
35
// workaround needed for IBM XLC and debug heaps on AIX
36
#if defined(_AIX) && (defined(__xlc__) || defined(__xlC__) || defined(__ibmxl__))
37
# if defined(__DEBUG_ALLOC__)
38
namespace
std
{
39
using ::_debug_memset;
40
using ::_debug_memcpy;
41
}
42
# endif
43
#endif
44
45
// make_unchecked_array_iterator
46
#if _MSC_VER >= 1600
47
#include <iterator>
48
#endif
49
50
#if defined(CRYPTOPP_CXX11_ATOMICS)
51
#include <atomic>
52
#endif
53
54
#if defined(CRYPTOPP_CXX11_SYNCHRONIZATION)
55
#include <mutex>
56
#endif
57
58
#if defined(CRYPTOPP_CXX11_RVALUES)
59
# include <utility>
60
#endif
61
62
#include <cstdlib>
63
#include <cstddef>
64
#include <cstring>
65
#include <climits>
66
#include <cmath>
67
68
// uintptr_t and ptrdiff_t
69
#if defined(__SUNPRO_CC)
70
# if (__SUNPRO_CC >= 0x5100)
71
# include <stdint.h>
72
# endif
73
#elif defined(_MSC_VER)
74
# if (_MSC_VER >= 1700)
75
# include <stdint.h>
76
# else
77
# include <stddef.h>
78
# endif
79
#elif (__cplusplus < 201103L)
80
# include <stdint.h>
81
#endif
82
83
// workaround needed on Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21
84
#ifdef CRYPTOPP_INCLUDE_VECTOR_CC
85
# include <vector.cc>
86
#endif
87
88
// C++Builder's standard library (Dinkumware) do not have C's global log() function
89
// https://github.com/weidai11/cryptopp/issues/520
90
#ifdef __BORLANDC__
91
using
std::log;
92
#endif
93
94
#endif // CRYPTOPP_STDCPP_H
std
STL namespace.
Generated on Tue Dec 25 2018 16:18:39 for Crypto++ by
1.8.14