// Debugging map implementation -*- C++ -*-
-// Copyright (C) 2003-2019 Free Software Foundation, Inc.
+// Copyright (C) 2003-2020 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#if __cpp_deduction_guides >= 201606
- template<typename _InputIterator,
- typename _Compare = less<__iter_key_t<_InputIterator>>,
- typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>,
- typename = _RequireInputIter<_InputIterator>,
- typename = _RequireAllocator<_Allocator>>
- map(_InputIterator, _InputIterator,
- _Compare = _Compare(), _Allocator = _Allocator())
- -> map<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>,
- _Compare, _Allocator>;
-
- template<typename _Key, typename _Tp, typename _Compare = less<_Key>,
- typename _Allocator = allocator<pair<const _Key, _Tp>>,
- typename = _RequireAllocator<_Allocator>>
- map(initializer_list<pair<_Key, _Tp>>,
- _Compare = _Compare(), _Allocator = _Allocator())
- -> map<_Key, _Tp, _Compare, _Allocator>;
-
- template <typename _InputIterator, typename _Allocator,
+ template<typename _InputIterator,
+ typename _Compare = less<__iter_key_t<_InputIterator>>,
+ typename _Allocator = allocator<__iter_to_alloc_t<_InputIterator>>,
typename = _RequireInputIter<_InputIterator>,
+ typename = _RequireNotAllocator<_Compare>,
typename = _RequireAllocator<_Allocator>>
- map(_InputIterator, _InputIterator, _Allocator)
- -> map<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>,
- less<__iter_key_t<_InputIterator>>, _Allocator>;
-
- template<typename _Key, typename _Tp, typename _Allocator,
- typename = _RequireAllocator<_Allocator>>
- map(initializer_list<pair<_Key, _Tp>>, _Allocator)
- -> map<_Key, _Tp, less<_Key>, _Allocator>;
+ map(_InputIterator, _InputIterator,
+ _Compare = _Compare(), _Allocator = _Allocator())
+ -> map<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>,
+ _Compare, _Allocator>;
+
+ template<typename _Key, typename _Tp, typename _Compare = less<_Key>,
+ typename _Allocator = allocator<pair<const _Key, _Tp>>,
+ typename = _RequireNotAllocator<_Compare>,
+ typename = _RequireAllocator<_Allocator>>
+ map(initializer_list<pair<_Key, _Tp>>,
+ _Compare = _Compare(), _Allocator = _Allocator())
+ -> map<_Key, _Tp, _Compare, _Allocator>;
+
+ template <typename _InputIterator, typename _Allocator,
+ typename = _RequireInputIter<_InputIterator>,
+ typename = _RequireAllocator<_Allocator>>
+ map(_InputIterator, _InputIterator, _Allocator)
+ -> map<__iter_key_t<_InputIterator>, __iter_val_t<_InputIterator>,
+ less<__iter_key_t<_InputIterator>>, _Allocator>;
+
+ template<typename _Key, typename _Tp, typename _Allocator,
+ typename = _RequireAllocator<_Allocator>>
+ map(initializer_list<pair<_Key, _Tp>>, _Allocator)
+ -> map<_Key, _Tp, less<_Key>, _Allocator>;
#endif