I’ve got a thread-queue with a generic callback that takes the queue elements. This is the minimally reduced code:
<code>template<typename Entity, typename Consumer>
requires requires( Consumer consumer, Entity entity ) { { consumer( std::move( entity ) ) }; }
void withCallback( Consumer consumer )
{
// ...
}
</code>
<code>template<typename Entity, typename Consumer>
requires requires( Consumer consumer, Entity entity ) { { consumer( std::move( entity ) ) }; }
void withCallback( Consumer consumer )
{
// ...
}
</code>
template<typename Entity, typename Consumer>
requires requires( Consumer consumer, Entity entity ) { { consumer( std::move( entity ) ) }; }
void withCallback( Consumer consumer )
{
// ...
}
Can I also declare the parameter entity to be a r-value-reference directly like this:
<code>template<typename Entity, typename Consumer>
requires requires( Consumer consumer, Entity &&entity ) { { consumer( entity ) }; }
void withCallback( Consumer consumer )
{
// ...
}
</code>
<code>template<typename Entity, typename Consumer>
requires requires( Consumer consumer, Entity &&entity ) { { consumer( entity ) }; }
void withCallback( Consumer consumer )
{
// ...
}
</code>
template<typename Entity, typename Consumer>
requires requires( Consumer consumer, Entity &&entity ) { { consumer( entity ) }; }
void withCallback( Consumer consumer )
{
// ...
}