以下のようなコードの断片を見たことがありますが、
/** Starts a synchronized block
*
* This macro starts a block synchronized on its argument x
* Note that the synchronized block defines a scope (i.e. { })
* All variables declared in it will live inside this block only
*/
#define SYNCHRONIZE_ON(x) { \
const abcd::LockBase & __lock = \
abcd::MakeLock(x); __lock;
/** Ends a synchronized block */
#define END_SYNCHRONIZE }
とSYNCHRONIZE_ON
をEND_SYNCHRONIZE
一緒に使用して、オブジェクトを同期します。マクロは、そのブロックでSYNCHRONIZE_ON
変数____lock
を定義します。
ここでの質問は次のとおりです: (の後の)文は何のためのものですか? __lock;
abcd::MakeLock(x);
この文は変数名だけで構成されていることに注意してください。