gpt4 book ai didi

c++ - Moses 源代码中的关键字 mutable 是做什么用的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:10 24 4
gpt4 key购买 nike

这是关于统计机器翻译系统的源码Moses .在 Mosesdecoder project,Factor 类中关键字 mutable 的奇怪用法:

class Factor {

__SOME_OTHER_CODE__

// FactorCollection writes here.
// This is mutable so the pointer can be changed to pool-backed memory.
mutable StringPiece m_string
size_t m_id;

__SOME_OTHER_CODE__
}

Factor.h 的完整文件是here .我知道 mutable 用于在 const 成员函数中修改成员变量,或者在 lambda 表达式中修改一些超出范围的变量。但是,我不明白 mutable 在这段代码中做了什么。

我很感激任何提示。谢谢。

最佳答案

您提供的信息太少,我们只能猜测。

也就是说,从评论来看,他们似乎有某种存储池,他们可能想将字符串的存储移动到存储池中。与 mutable 的大多数用途一样,它用于处理按位修改,该修改仍​​然使对象在逻辑上未被修改(即,它们更改指针,使其指向相同的数据,但位于不同的地址) .

关于c++ - Moses 源代码中的关键字 mutable 是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20605008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com