Date: Thu, 16 Feb 2023 23:08:07 +0000
On Thu, Feb 16, 2023 at 10:31 PM Thiago Macieira wrote:
>
> > `foo` is now *moveable*, whereas before (since it stored a `mutex`),
> > it was not moveable. If I use a `shared_ptr`, it could be copyable
> > too.
>
> Bonus: it allows controlling reentrancy on a set of objects of this class
> larger than 1 and less than the universe.
If you want to retain movability, the syntax is:
void Func(void) noreentry&&;
Those two ampersands are not to be confused with marking a method to
only be invoked on an R-value, which would be:
void Func(void) && noreentry&&;
>
> > `foo` is now *moveable*, whereas before (since it stored a `mutex`),
> > it was not moveable. If I use a `shared_ptr`, it could be copyable
> > too.
>
> Bonus: it allows controlling reentrancy on a set of objects of this class
> larger than 1 and less than the universe.
If you want to retain movability, the syntax is:
void Func(void) noreentry&&;
Those two ampersands are not to be confused with marking a method to
only be invoked on an R-value, which would be:
void Func(void) && noreentry&&;
Received on 2023-02-16 23:08:20