brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 0b0388a Raw
50 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// <tuple>10 11// template <class... Types> class tuple;12 13// template <class... Types, class Alloc>14//   struct uses_allocator<tuple<Types...>, Alloc> : true_type { };15 16// UNSUPPORTED: c++0317 18#include <tuple>19#include <type_traits>20 21#include "test_macros.h"22 23struct A {};24 25int main(int, char**)26{27    {28        typedef std::tuple<> T;29        static_assert((std::is_base_of<std::true_type,30                                       std::uses_allocator<T, A>>::value), "");31    }32    {33        typedef std::tuple<int> T;34        static_assert((std::is_base_of<std::true_type,35                                       std::uses_allocator<T, A>>::value), "");36    }37    {38        typedef std::tuple<char, int> T;39        static_assert((std::is_base_of<std::true_type,40                                       std::uses_allocator<T, A>>::value), "");41    }42    {43        typedef std::tuple<double&, char, int> T;44        static_assert((std::is_base_of<std::true_type,45                                       std::uses_allocator<T, A>>::value), "");46    }47 48  return 0;49}50