120544746SLouis Dionne //===----------------------------------------------------------------------===//
220544746SLouis Dionne //
320544746SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
420544746SLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
520544746SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
620544746SLouis Dionne //
720544746SLouis Dionne //===----------------------------------------------------------------------===//
820544746SLouis Dionne //
9*a7f9895cSLouis Dionne // UNSUPPORTED: no-threads
1020544746SLouis Dionne 
1120544746SLouis Dionne // packaged_task allocator support was removed in C++17 (LWG 2976)
1220544746SLouis Dionne // REQUIRES: c++11 || c++14
1320544746SLouis Dionne 
1420544746SLouis Dionne // <future>
1520544746SLouis Dionne 
1620544746SLouis Dionne // class packaged_task<R(ArgTypes...)>
1720544746SLouis Dionne 
1820544746SLouis Dionne // template <class Callable, class Alloc>
1920544746SLouis Dionne //   struct uses_allocator<packaged_task<Callable>, Alloc>
2020544746SLouis Dionne //      : true_type { };
2120544746SLouis Dionne 
2220544746SLouis Dionne #include <future>
2320544746SLouis Dionne #include "test_macros.h"
2420544746SLouis Dionne #include "test_allocator.h"
2520544746SLouis Dionne 
2620544746SLouis Dionne static_assert((std::uses_allocator<std::packaged_task<double(int, char)>, test_allocator<int> >::value), "");
27