ó++0x: atomic_load

  • Thread starter Dmitriy V'jukov
  • Start date
D

Dmitriy V'jukov

I'm reading latest draft of C++0x N2588:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2588.pdf

29.4.4/9
C atomic_load(volatile A * object);
C atomic_load_explicit(volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) volatile;
Requires: The order argument shall not be memory_order_acquire nor
memory_order_acq_rel.

???

Why I can't specify:
atomic_load_explicit(&a, memory_order_acquire);
?

Or it's just a copy-past error? I think it must be:

29.4.4/9
C atomic_load(volatile A * object);
C atomic_load_explicit(volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) volatile;
Requires: The order argument shall not be *memory_order_release* nor
memory_order_acq_rel.


Dmitriy V'jukov
 
E

Erik Wikström

I'm reading latest draft of C++0x N2588:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2588.pdf

29.4.4/9
C atomic_load(volatile A * object);
C atomic_load_explicit(volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) volatile;
Requires: The order argument shall not be memory_order_acquire nor
memory_order_acq_rel.

???

Why I can't specify:
atomic_load_explicit(&a, memory_order_acquire);
?

Or it's just a copy-past error? I think it must be:

29.4.4/9
C atomic_load(volatile A * object);
C atomic_load_explicit(volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) volatile;
Requires: The order argument shall not be *memory_order_release* nor
memory_order_acq_rel.

It seems to be a copy-paste error since the wording in n2427 agrees with
your version. Perhaps you should send a mail to Pete Becker (his address
is at the top of the draft).
 
A

Anthony Williams

Dmitriy V'jukov said:
I'm reading latest draft of C++0x N2588:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2588.pdf

29.4.4/9
C atomic_load(volatile A * object);
C atomic_load_explicit(volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) volatile;
Requires: The order argument shall not be memory_order_acquire nor
memory_order_acq_rel.

???

Why I can't specify:
atomic_load_explicit(&a, memory_order_acquire);
?

Or it's just a copy-past error? I think it must be:

29.4.4/9
C atomic_load(volatile A * object);
C atomic_load_explicit(volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) volatile;
Requires: The order argument shall not be *memory_order_release* nor
memory_order_acq_rel.

I think you're right. I'll forward your mail to the project editor.

Anthony
 
I

Ian Collins

Alf said:
* Ian Collins:
This (and your other post) should probably be asked on comp.std.c++.

The last article in [comp.std.c++] was 6th Jan 2008, and as far as I
know new articles are still not accepted.
OK, that shows when I last checked that group, what happened to it, no
moderators left?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top