从std :: size_t转换为void

kwi*_*man 0 c++ casting

在很多旧代码中,我看到了以下代码段的变体:

std::size_t  some_size = some_function_that_returns_size_t();
(void)some_size;
assert(some_size > some_other_size);
Run Code Online (Sandbox Code Playgroud)

演员的目的是什么void

请记住,这不是铸造 void*

如果我不得不猜测,这看起来像是一个安全检查,以确保机器size_t在编译时大于void.

在解释器中玩游戏会发现演员表会返回一个不同于some_size初始值足够大的值,但由于它没有被分配,所以老实说我没有看到这一点.

如果它很重要,这可以在分配库中找到,作为对齐和大小的分配检查的一部分.

Vla*_*cow 6

据我所知,这样的技巧用于防止编译器发出一个警告,即变量已定义但未被使用.