C++ links: Coroutines
https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Coroutines
(draft; work in progress)
#coroutines (C++ Slack): https://cpplang.slack.com/archives/C5JS5JXT5
| <?xml version="1.0"?> | |
| <?mso-application progid="Excel.Sheet"?> | |
| <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" | |
| xmlns:o="urn:schemas-microsoft-com:office:office" | |
| xmlns:x="urn:schemas-microsoft-com:office:excel" | |
| xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" | |
| xmlns:html="http://www.w3.org/TR/REC-html40"> | |
| <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> | |
| <LastAuthor>Me</LastAuthor> | |
| <Revision>1</Revision> |
| namespace coyield | |
| { | |
| template<typename T> | |
| struct generator_type | |
| { | |
| struct promise_type; | |
| using coroutine_handle_type = stdco::coroutine_handle<promise_type>; | |
| coroutine_handle_type handle; | |
| generator_type(coroutine_handle_type handle) : handle{ handle } |
| /* | |
| * Pretty thread logger | |
| * | |
| * Copyright (C) 2020 Anatoly Shirokov. | |
| * | |
| * Permission is hereby granted, free of charge, to any person obtaining a copy | |
| * of this software and associated documentation files (the "Software"), to deal | |
| * in the Software without restriction, including without limitation the rights | |
| * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| * copies of the Software, and to permit persons to whom the Software is |
https://github.com/MattPD/cpplinks / C++ Standard / C++20 / Coroutines
(draft; work in progress)
#coroutines (C++ Slack): https://cpplang.slack.com/archives/C5JS5JXT5
| #pragma warning(disable : 4251 4275) | |
| #include "gtest/gtest.h" | |
| #include <functional> | |
| #include <initializer_list> | |
| #include <memory> | |
| #include <optional> | |
| #include <vector> | |
| /** |
| /////////////////////////////////////////////////////////////////////////////// | |
| // params.h | |
| // | |
| // Файл содержит определение вспомогательных шаблонов, с помощью которых | |
| // можно контролировать правильность передачи параметров при вызове | |
| // серверных методов (порядок, тип и значение аргументов). | |
| // | |
| // Подход заключается в маркировании типов аргументов с помощью | |
| // тегов с метаинформацией о параметре метода (method::name, method::age и т.д.): | |
| // // метаинформация |