gpt4 book ai didi

c++ - 实现 atomic::store

转载 作者:可可西里 更新时间:2023-11-01 18:28:49 26 4
gpt4 key购买 nike

我正在尝试实现 C++0x 草案中的原子库。具体来说,我正在实现 §29.6/8,store 方法:

template <typename T>
void atomic<T>::store(T pDesired, memory_order pOrder = memory_order_seq_cst);

要求说明:

The order argument shall not be memory_order_consume, memory_order_acquire, nor memory_order_acq_rel.

如果是其中之一,我不确定该怎么办。我应该什么都不做、抛出异常、出现未定义的行为,还是做其他事情?

附言:“C++0X”看起来有点像死鱼 :3

最佳答案

随心所欲。没关系。

当 ISO 声明您“不得做某事”时,这样做是未定义的行为。如果用户这样做,他们就违反了与实现的契约(Contract),而实现在其权利范围内为所欲为。

你决定做什么完全取决于你。我会选择让您的实现“更好”的任何东西(在您看来,速度更快、可读性更强、符合最少惊讶原则等)。

我自己,我会追求可读性(因为我必须维护它),速度紧随其后。

关于c++ - 实现 atomic<T>::store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com