Struct should be invalid after move
John Colvin
john.loughran.colvin at gmail.com
Tue Nov 27 09:50:25 UTC 2018
On Tuesday, 27 November 2018 at 08:00:22 UTC, Sebastiaan Koppe
wrote:
> I have a non-copyable struct and I really want a compiler error
> whenever I access it after it has been moved.
>
> ---
> struct Handle {
> ...
> @disable this(this);
> ...
> }
>
> void main() {
> import std.algorithm : move;
> auto handle = getOne();
> auto second = handle.move; /// line 14
> auto third = handle.move; /// <- compiler error,
> variable handle is invalid after line 14
> }
> ---
>
> I believe this would prevent some nasty bugs when dealing with
> these structs.
>
> What do you think?
void foo(int a)
{
import std.algorithm : move;
auto handle = getOne();
if (a > 0)
auto second = handle.move;
auto third = handle.move; // compile error?
}
Not a trivial problem in the general case.
More information about the Digitalmars-d
mailing list