gpt4 book ai didi

c++ - boost lib 中的语句,(void)p;这是什么意思?

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

我在 Boost 库中看到了以下一段用于 offset_ptr 的代码。在 boost/interprocess/offset_ptr.hpp 下

typedef PointedType *                     pointer;
...
//!Constructor from other pointer.
//!Never throws.
template <class T>
offset_ptr(T *ptr)
{ pointer p (ptr); (void)p; this->set_offset(p); }

我想知道语句 (void)p; 是什么意思?是吗?

最佳答案

找出答案的一种方法是在该行代码上打一个断点,然后单步执行以找出它的作用。您甚至可以重新格式化代码以允许您在该特定语句上设置断点(没有法律禁止编辑这些文件 - 只是不要更改实际代码)。

但是,我的猜测是 pointer 类型正在使用某种形式的惰性求值,模拟的转换运算符调用了 set_offset 方法,所以也许 this->set_offset(p) 要求 p 设置一个有效的偏移量,而执行 (void)p 只是强制它发生。

关于c++ - boost lib 中的语句,(void)p;这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622670/

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