1

有什么方法可以禁止将结构用作左值(不能用作变量)?

我尝试禁用构造函数和 opAssign,但最后,您仍然可以从函数中分配它。

unittest
{
    //mystruct doesntCompile;
    mystruct shouldntCompile = makeMyStruct();
}


struct mystruct
{
    @disable this();
    @disable this(this);
    @disable void opAssign(ref mystruct);
    @disable void opAssign(mystruct);
    this(int dummyArgument){}
}

mystruct makeMyStruct()
{
    return mystruct(0);
}
4

1 回答 1

2

有什么方法可以禁止将结构用作左值(不能用作变量)?

不,这是不可能的。每种类型都可以有左值实例。

如果您让我们知道您想要达到的目标,您可能会得到更好的答案。为什么要防止您的结构被用作左值?

于 2013-08-03T14:55:02.667 回答