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-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// UNSUPPORTED: no-threads
10// UNSUPPORTED: c++03, c++11, c++14, c++17
11
12// <future>
13
14// template <class F, class... Args>
15// future<typename result_of<F(Args...)>::type>
16// async(F&& f, Args&&... args);
17
18// template <class F, class... Args>
19// future<typename result_of<F(Args...)>::type>
20// async(launch policy, F&& f, Args&&... args);
21
22
23#include <future>
24
25int foo (int x) { return x; }
26
27void f() {
28 std::async( fn&: foo, args: 3); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
29 std::async(policy: std::launch::async, fn&: foo, args: 3); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
30}
31

source code of libcxx/test/std/thread/futures/futures.async/async.verify.cpp