diff --git a/include/__bit_reference b/include/__bit_reference index 46213332c..9ee1dd943 100644 --- a/include/__bit_reference +++ b/include/__bit_reference @@ -14,6 +14,8 @@ #include <__config> #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/__hash_table b/include/__hash_table index 4399caad6..39de62acd 100644 --- a/include/__hash_table +++ b/include/__hash_table @@ -18,6 +18,8 @@ #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/__split_buffer b/include/__split_buffer index 33ce42da3..581f1596c 100644 --- a/include/__split_buffer +++ b/include/__split_buffer @@ -6,6 +6,8 @@ #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/__std_stream b/include/__std_stream index 6df6556da..7fe34d49d 100644 --- a/include/__std_stream +++ b/include/__std_stream @@ -17,6 +17,8 @@ #include <__locale> #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/__undef_min_max b/include/__undef_min_max new file mode 100644 index 000000000..88bc53fea --- /dev/null +++ b/include/__undef_min_max @@ -0,0 +1,19 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifdef min +#warning: macro min is incompatible with C++. #undef'ing min +#undef min +#endif + +#ifdef max +#warning: macro max is incompatible with C++. #undef'ing max +#undef max +#endif diff --git a/include/algorithm b/include/algorithm index 6749bf611..6255c52f3 100644 --- a/include/algorithm +++ b/include/algorithm @@ -595,6 +595,8 @@ template #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/bitset b/include/bitset index c970f3290..4735754c6 100644 --- a/include/bitset +++ b/include/bitset @@ -129,6 +129,8 @@ template struct hash>; #include #endif +#include <__undef_min_max> + _LIBCPP_BEGIN_NAMESPACE_STD template diff --git a/include/chrono b/include/chrono index 1c79f4bbe..0571f9dff 100644 --- a/include/chrono +++ b/include/chrono @@ -255,6 +255,8 @@ typedef steady_clock high_resolution_clock; #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/deque b/include/deque index ab9ba58b0..f304f5690 100644 --- a/include/deque +++ b/include/deque @@ -162,6 +162,8 @@ template #include #include +#include <__undef_min_max> + _LIBCPP_BEGIN_NAMESPACE_STD template class __deque_base; diff --git a/include/forward_list b/include/forward_list index 61fe290d9..ffd44a595 100644 --- a/include/forward_list +++ b/include/forward_list @@ -174,6 +174,8 @@ template #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/fstream b/include/fstream index b6a2ab0e1..4456c0179 100644 --- a/include/fstream +++ b/include/fstream @@ -171,6 +171,8 @@ typedef basic_fstream wfstream; #include <__locale> #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/istream b/include/istream index 24d9f3a9f..f27139313 100644 --- a/include/istream +++ b/include/istream @@ -155,6 +155,8 @@ template #include <__config> #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/limits b/include/limits index 14b49b138..ea579ad31 100644 --- a/include/limits +++ b/include/limits @@ -109,6 +109,8 @@ template<> class numeric_limits; #include <__config> #include +#include <__undef_min_max> + #if defined(_MSC_VER) #include "support/win32/limits_win32.h" #endif // _MSC_VER diff --git a/include/list b/include/list index 345f24dbb..add519f26 100644 --- a/include/list +++ b/include/list @@ -176,6 +176,8 @@ template #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/locale b/include/locale index b2afbd40e..5dc3ff240 100644 --- a/include/locale +++ b/include/locale @@ -192,6 +192,8 @@ template class messages_byname; #include #endif // !_WIN32 +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/memory b/include/memory index 878dda873..7576aaebc 100644 --- a/include/memory +++ b/include/memory @@ -600,6 +600,8 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space); #include #endif +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/mutex b/include/mutex index 37e74d6d5..d1d0a6e05 100644 --- a/include/mutex +++ b/include/mutex @@ -179,6 +179,8 @@ template #include #endif +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/random b/include/random index c5c33c0fb..e14425dff 100644 --- a/include/random +++ b/include/random @@ -1646,6 +1646,8 @@ class piecewise_linear_distribution #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/ratio b/include/ratio index 654cb3312..eb1ad24e4 100644 --- a/include/ratio +++ b/include/ratio @@ -70,6 +70,8 @@ typedef ratio<1000000000000000000000000, 1> yotta; // not supported #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/regex b/include/regex index 048fbefc9..1da7b0e76 100644 --- a/include/regex +++ b/include/regex @@ -732,6 +732,8 @@ typedef regex_token_iterator wsregex_token_iterator; #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/sstream b/include/sstream index 1b27195f9..22450f0ad 100644 --- a/include/sstream +++ b/include/sstream @@ -175,6 +175,8 @@ typedef basic_stringstream wstringstream; #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/string b/include/string index 5f5a347c6..344bb5514 100644 --- a/include/string +++ b/include/string @@ -446,6 +446,8 @@ template <> struct hash; #include #endif +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/valarray b/include/valarray index 5d3154cc9..3ac949412 100644 --- a/include/valarray +++ b/include/valarray @@ -346,6 +346,8 @@ template unspecified2 end(const valarray& v); #include #include +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif diff --git a/include/vector b/include/vector index 7f7e3d361..10702f3c8 100644 --- a/include/vector +++ b/include/vector @@ -270,6 +270,8 @@ void swap(vector& x, vector& y) #include <__split_buffer> #include <__functional_base> +#include <__undef_min_max> + #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header #endif