-
Notifications
You must be signed in to change notification settings - Fork 206
Open
Description
I don't have time to trace back this compiler failure but here is a Godbolt reproducer.
Basically, the code is:
#include "stdexec/execution.hpp"
struct CustomProperty
{
template <typename Env> requires ::stdexec::tag_invocable<CustomProperty, Env>
constexpr decltype(auto) operator()(Env&& env) const {
return ::stdexec::tag_invoke(*this, std::forward<Env>(env));
}
};
constexpr CustomProperty my_custom_property {};
int main()
{
constexpr auto env = ::stdexec::env{::stdexec::prop{my_custom_property, 123}};
static_assert(my_custom_property(env) == 123);
}
and with clang
(19 or 20) it fails (gcc
13 also fails but gcc
15 is fine):
<source>:18:81: error: missing field '__elem1' initializer [-Werror,-Wmissing-field-initializers]
18 | constexpr auto env = ::stdexec::env{::stdexec::prop{my_custom_property, 123}};
I'm not sure whether this is due to a new recent commit but it used to work just fine a few weeks ago. Today I'm using e5dbe49.
Metadata
Metadata
Assignees
Labels
No labels