声明"(void)c;"的目的是什么?

Nim*_*Nim 18 c++

很抱歉这个模糊的标题,但不确定如何表达它.所以我正在浏览boost :: asio的内部(试图追踪一些荒谬的延迟),我注意到这样的代码点缀着:

    op_queue<operation> completed_ops;
    task_cleanup c = { this, &lock, &completed_ops };
    (void)c;  // EH?
Run Code Online (Sandbox Code Playgroud)

现在从正在初始化的结构的名称,我猜它正在使用RAII在销毁上做一些步骤 - 很好,但是最后一行的目的是什么?我是否只是错过了一些完全时髦的东西?

tib*_*bur 19

也许是为了避免编译警告,因为c没有使用?

  • @Wyatt Anderson,我怀疑,编译器不可能预测构造函数/析构函数esp的所有副作用.如果他们是非平凡的. (3认同)