[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/gitmodimo/cppgraphqlgen/main/cmake/test_coroutine.cpp.in [Back]  [Original]

// This is a dummy program that just needs to compile and link to tell us if
// the C++20 coroutine API is available. Use CMake's configure_file command
// to replace the COROUTINE_HEADER and COROUTINE_NAMESPACE tokens for each
// combination of headers and namespaces which we want to pass to the CMake
// try_compile command.

#include 
#include 

struct task
{
    struct promise_type
    {
        task get_return_object() noexcept
        {
            return {};
        }

        @COROUTINE_NAMESPACE@::suspend_never initial_suspend() noexcept
        {
            return {};
        }

        @COROUTINE_NAMESPACE@::suspend_never final_suspend() noexcept
        {
            return {};
        }

        void return_void() noexcept
        {
            promise.set_value();
        }

        void unhandled_exception()
        {
            promise.set_exception(std::current_exception());
        }

        std::promise promise;
    };

    constexpr bool await_ready() const noexcept
    {
        return true;
    }

    std::future future;
};

task test_co_return()
{
    co_return;
}

int main()
{
    test_co_return().future.get();
    return 0;
}

Web Proxy Viewer  |  New URL  |  Original Page