view gcc/testsuite/g++.dg/coroutines/torture/co-await-16-template-traits.C @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
line wrap: on
line source

//  { dg-do compile }
//  Test we create co_await_expr with dependent type rather than type of awaitable class

#include "../coro.h"
#include "../coro1-ret-int-yield-int.h"
#include <chrono>

struct TestAwaiter {
    int recent_test;
    TestAwaiter(int test) : recent_test{test} {}
    bool await_ready() { return true; }
    void await_suspend(coro::coroutine_handle<>) {}
    int await_resume() { return recent_test;}
    void return_value(int x) { recent_test = x;}
};

template <typename Rep, typename Period>
coro1 test_temparg (std::chrono::duration<Rep, Period> dur)
{
       auto sum = co_await TestAwaiter(1);
       if (!sum)
	 dur.count();
       co_return 0;
}