The minimum example to reproduce:
#include <iostream>
#include <unifex/just.hpp>
#include <unifex/let_value.hpp>
using namespace unifex;
struct MainRecv {
template<typename V>
void set_value(V&& v) noexcept { std::cout << " v=" << v; }
template<typename E>
void set_error(E&&) noexcept { std::cerr << " error="; }
void set_done() noexcept { std::cout << "DONE"; }
};
int main() {
// failed with `let_value` and `let_error`. `then` works fine.
// maybe other senders returning senders also affected.
auto sender = just(12) | let_value([](int i) { return just(1); });
auto op = connect(std::move(sender), MainRecv{}); // error generated while connect
start(op);
}
The error log I get on my machine:
msvc_build_failed.log
cl /std:c++20 works just fine. The problem only with cl /std:c++17.
cl version on my machine is:
Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35217 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
The minimum example to reproduce:
The error log I get on my machine:
msvc_build_failed.log
cl /std:c++20works just fine. The problem only withcl /std:c++17.cl version on my machine is: