【发布时间】:2020-07-10 20:02:24
【问题描述】:
我想用它的宏实现 Boost 库所做的事情(例如,就像 BOOST_FOREACH)。
这是我目前使用的宏示例:
#define LOCK_GUARD(var, block) { std::lock_guard<std::mutex> ___scope__(var); block }
std::mutex mutex;
LOCK_GUARD(mutex, {
// body...
});
我想知道如何以这种方式修改它,所以我可以使用LOCK_GUARD,如下所示:
LOCK_GUARD(mutex)
{
// body...
}
【问题讨论】:
-
@davis-herring 和这个问题无关
-
@Jorengarenar:不是吗?撇开标题不谈,事实证明他们想要的是编写一个接受 following 语句的宏,这正是这里的问题。不过,您找到的问题更匹配。
-
@DavisHerring 我对这个问题的回答甚至没有使用
for循环。 :/我不认为这是一个骗局。 (甚至连 Jorengarenar 链接的内容都没有被欺骗,因为该线程是关于 C 的。) -
@HolyBlackCat:没有人坚持要你投票或解释为什么不投票;这里的不作为意味着不同意。我确实认为这是另一个问题的重复(并且可能会改变我的近距离投票):C 和 C++ 确实共享许多相同的预处理器。