18d4860aaSLouis Dionne //===----------------------------------------------------------------------===//
28d4860aaSLouis Dionne //
38d4860aaSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
48d4860aaSLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
58d4860aaSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
68d4860aaSLouis Dionne //
78d4860aaSLouis Dionne //===----------------------------------------------------------------------===//
88d4860aaSLouis Dionne //
9*a7f9895cSLouis Dionne // UNSUPPORTED: no-threads
108d4860aaSLouis Dionne 
118d4860aaSLouis Dionne // <future>
128d4860aaSLouis Dionne 
138d4860aaSLouis Dionne // class promise<R>
148d4860aaSLouis Dionne 
158d4860aaSLouis Dionne // promise(const promise&) = delete;
168d4860aaSLouis Dionne 
178d4860aaSLouis Dionne #include <future>
188d4860aaSLouis Dionne 
198d4860aaSLouis Dionne #include "test_macros.h"
208d4860aaSLouis Dionne 
main(int,char **)218d4860aaSLouis Dionne int main(int, char**)
228d4860aaSLouis Dionne {
238d4860aaSLouis Dionne     {
248d4860aaSLouis Dionne         std::promise<int> p0;
258d4860aaSLouis Dionne         std::promise<int> p(p0); // expected-error {{call to deleted constructor of 'std::promise<int>'}}
268d4860aaSLouis Dionne     }
278d4860aaSLouis Dionne     {
288d4860aaSLouis Dionne         std::promise<int &> p0;
298d4860aaSLouis Dionne         std::promise<int &> p(p0); // expected-error {{call to deleted constructor of 'std::promise<int &>'}}
308d4860aaSLouis Dionne     }
318d4860aaSLouis Dionne     {
328d4860aaSLouis Dionne         std::promise<void> p0;
338d4860aaSLouis Dionne         std::promise<void> p(p0); // expected-error {{call to deleted constructor of 'std::promise<void>'}}
348d4860aaSLouis Dionne     }
358d4860aaSLouis Dionne 
368d4860aaSLouis Dionne     return 0;
378d4860aaSLouis Dionne }
38