Здравствуйте, rg45, Вы писали:
R>И я что-то не очень понимаю, о каких гарантиях ты говоришь.
R>Например, каких гарантий тебе не хватает в примере ниже?
R>http://coliru.stacked-crooked.com/a/8c7737e8d549bffb
R>R>#include <concepts>
R>#include <generator>
R>#include <iostream>
R>template <std::incrementable T>
R>std::generator<const T&> lazy_sequence(T t, size_t count) {
R> for (size_t i = 0; i < count; ++i)
R> co_yield t++;
R>}
R>int main()
R>{
R> for (auto t : lazy_sequence(1, 10)) // -> 1 2 3 4 5 6 7 8 9 10
R> std::cout << t << ' ';
R> std::cout << std::endl;
R> for (auto t : lazy_sequence('A', 26)) // -> A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
R> std::cout << t << ' ';
R>}
R>
Это слишком простой пример. Тут никаких особых гарантий не надо, т.к. они не используют общих ресурсов и даже не выделяют их для выполнения зачачи.
Простой вопрос кто должен выделять и освободлать ресурсы исполнитель или
прораб тот кто поставил задачу должен предоставить ресурсы для её выполнения?