brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 66041a4 Raw
86 lines · plain
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_FLAT_SET11#define _LIBCPP_FLAT_SET12 13/*14  Header <flat_set> synopsis15 16#include <compare>              // see [compare.syn]17#include <initializer_list>     // see [initializer.list.syn]18 19namespace std {20  // [flat.set], class template flat_set21  template<class Key, class Compare = less<Key>, class KeyContainer = vector<Key>>22    class flat_set;23 24  struct sorted_unique_t { explicit sorted_unique_t() = default; };25  inline constexpr sorted_unique_t sorted_unique{};26 27  template<class Key, class Compare, class KeyContainer, class Allocator>28    struct uses_allocator<flat_set<Key, Compare, KeyContainer>, Allocator>;29 30  // [flat.set.erasure], erasure for flat_set31  template<class Key, class Compare, class KeyContainer, class Predicate>32    typename flat_set<Key, Compare, KeyContainer>::size_type33      erase_if(flat_set<Key, Compare, KeyContainer>& c, Predicate pred);34 35   // [flat.multiset], class template flat_multiset36  template<class Key, class Compare = less<Key>, class KeyContainer = vector<Key>>37    class flat_multiset;38 39  struct sorted_equivalent_t { explicit sorted_equivalent_t() = default; };40  inline constexpr sorted_equivalent_t sorted_equivalent{};41 42  template<class Key, class Compare, class KeyContainer, class Allocator>43    struct uses_allocator<flat_multiset<Key, Compare, KeyContainer>, Allocator>;44 45  // [flat.multiset.erasure], erasure for flat_multiset46  template<class Key, class Compare, class KeyContainer, class Predicate>47    typename flat_multiset<Key, Compare, KeyContainer>::size_type48      erase_if(flat_multiset<Key, Compare, KeyContainer>& c, Predicate pred);49}50*/51 52#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)53#  include <__cxx03/__config>54#else55#  include <__config>56 57#  if _LIBCPP_STD_VER >= 2358#    include <__flat_map/sorted_equivalent.h>59#    include <__flat_map/sorted_unique.h>60#    include <__flat_set/flat_multiset.h>61#    include <__flat_set/flat_set.h>62#  endif63 64// for feature-test macros65#  include <version>66 67// standard required includes68 69// [iterator.range]70#  include <__iterator/access.h>71#  include <__iterator/data.h>72#  include <__iterator/empty.h>73#  include <__iterator/reverse_access.h>74#  include <__iterator/size.h>75 76// [flat.set.syn]77#  include <compare>78#  include <initializer_list>79 80#  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)81#    pragma GCC system_header82#  endif83#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)84 85#endif // _LIBCPP_FLAT_SET86