Skip to content

Visual studio with c++17 build failed #676

Description

@BartolomeyKant

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions