Jam*_*mes 7 c++ syntax multithreading locking
我从开源库中读取以下代码.令我困惑的是美元符号的使用.任何人都可以在代码中澄清$的含义.非常感谢您的帮助!
__forceinline MutexActive( void ) : $lock(LOCK_IS_FREE) {}
void lock ( void );
__forceinline void unlock( void ) {
__memory_barrier(); // compiler must not schedule loads and stores around this point
$lock = LOCK_IS_FREE;
}
protected:
enum ${ LOCK_IS_FREE = 0, LOCK_IS_TAKEN = 1 };
Atomic $lock;
Run Code Online (Sandbox Code Playgroud)
它被用作标识符的一部分.
[C++11: 2.11/1]
将标识符定义为"任意长的字母和数字序列".它在上面给出的语法中定义了"字母和数字",它只列出数字,小写和大写罗马字母,以及明确的下划线字符,但也允许"其他实现定义的字符",其中可能是一个.
在这种情况下,$
除了作为标识符的一部分之外没有其他特殊含义 - 在这种情况下,变量的名称.它位于变量名称的开头没有特别的意义.