brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 630f5c8 Raw
55 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include <__cxx03/__tree>10#include <map>11#include <set>12#include <type_traits>13 14#include "test_macros.h"15#include "min_allocator.h"16 17void testKeyValueTrait() {18  {19    typedef int Tp;20    typedef std::__tree_key_value_types<Tp> Traits;21    static_assert((std::is_same<Traits::key_type, int>::value), "");22    static_assert((std::is_same<Traits::__container_value_type, Tp>::value), "");23    static_assert(Traits::__is_map == false, "");24  }25  {26    typedef std::pair<int, int> Tp;27    typedef std::__tree_key_value_types<Tp> Traits;28    static_assert((std::is_same<Traits::key_type, Tp>::value), "");29    static_assert((std::is_same<Traits::__container_value_type, Tp>::value), "");30    static_assert(Traits::__is_map == false, "");31  }32  {33    typedef std::pair<const int, int> Tp;34    typedef std::__tree_key_value_types<Tp> Traits;35    static_assert((std::is_same<Traits::key_type, Tp>::value), "");36    static_assert((std::is_same<Traits::__container_value_type, Tp>::value), "");37    static_assert(Traits::__is_map == false, "");38  }39  {40    typedef std::__value_type<int, int> Tp;41    typedef std::__tree_key_value_types<Tp> Traits;42    static_assert((std::is_same<Traits::key_type, int>::value), "");43    static_assert((std::is_same<Traits::mapped_type, int>::value), "");44    static_assert((std::is_same<Traits::__container_value_type, std::pair<const int, int> >::value), "");45    static_assert((std::is_same<Traits::__map_value_type, std::pair<const int, int> >::value), "");46    static_assert(Traits::__is_map == true, "");47  }48}49 50int main(int, char**) {51  testKeyValueTrait();52 53  return 0;54}55