D 编程语言参考在声明和类型限定符部分显示了两个示例,因此这些都是可能的:
struct S
{
int method() const
{
//const stuff
}
}
struct S
{
int method() immutable
{
//immutable stuff
}
}
从文档:
const 成员函数是不允许通过成员函数的 this 引用更改对象的任何部分的函数。
和:
不可变成员函数保证 this 引用所引用的对象和任何东西都是不可变的。
我找到了这个问题,但所有的答案都是关于数据类型,而不是存储类。D const FAQ也是如此,尽管它读起来很有趣。
那么上面的两个定义有什么区别呢?是否有可以替代//const stuff
且合法但不合法的表达式//immutable stuff
?