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

statement in boost lib, (void)p; what does it mean?

本文关键字:是什么 意思 void lib 语句 boost      更新时间:2023-10-16

我在Boost Library中遇到了以下offset_ptr的代码。在提高/进程间/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只是强制它发生。