match.pd: Fix indefinite recursion during exp-log transformations [PR118490]
[gcc.git] / libstdc++-v3 / testsuite / 23_containers / vector / cons / 113841.cc
bloba7721d27f79616562e9ec9571d8c870d7f854ac0
1 // { dg-do compile { target c++20 } }
3 #include <vector>
5 template<typename T>
6 struct Alloc
8 using value_type = T;
10 Alloc(int) { } // not default constructible
12 template<typename U> Alloc(const Alloc<U>&) { }
14 T* allocate(std::size_t n) { return std::allocator<T>().allocate(n); }
15 void deallocate(T* p, std::size_t n) { std::allocator<T>().deallocate(p, n); }
18 template<typename T> struct wrap { T t; };
20 template<typename T> void do_adl(T&) { }
22 void test_pr113841()
24 using test_type = std::vector<int, Alloc<int>>;
25 std::pair<const int, wrap<test_type>>* h = nullptr;
26 do_adl(h);
29 void test_pr113841_bool()
31 using test_type = std::vector<bool, Alloc<bool>>;
32 std::pair<const int, wrap<test_type>>* h = nullptr;
33 do_adl(h);