Joe*_*rba 7 c++ atomic std c++11
我正在尝试从C++ 0x草案中实现原子库.具体来说,我正在实施§29.6/ 8,存储方法:
template <typename T>
void atomic<T>::store(T pDesired, memory_order pOrder = memory_order_seq_cst);
Run Code Online (Sandbox Code Playgroud)
要求规定:
order参数不应该是memory_order_consume,memory_order_acquire,也不是memory_order_acq_rel.
如果它是其中之一,我不知道该怎么办.我应该什么都不做,抛出异常,获取未定义的行为,或做其他事情?
PS:"C++ 0X"看起来有点像死鱼:3
做你想做的.没关系.
当ISO声明您"不应该做某事"时,这样做是未定义的行为.如果用户这样做,他们违反了与实施的合同,并且实施权利随心所欲.
你决定做什么完全取决于你.我会选择任何使你的实现"更好"的东西(在你看来,更快,更可读,受到最不惊讶的原则,等等).
我自己,我会追求可读性(因为我必须保持这个东西),速度接近第二.
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |