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 Dionneint 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