According to this reference manual
For every
std::atomic<X>
(whether or not specialized),std::atomic<X>::value_type
is X.
But if I try using such type I get a compilation error.
I've tried it with g++ 8.2.1
:
$ g++ -std=c++11 test.cc
test.cc: In function ‘int main()’:
test.cc:6:23: error: ‘value_type’ is not a member of ‘std::atomic<int>’
std::atomic<int>::value_type x = 0;
And with clang 6.0.1
$ clang -std=c++11 test.cc
test.cc:6:23: error: no type named 'value_type' in 'std::atomic<int>'
std::atomic<int>::value_type x = 0;
~~~~~~~~~~~~~~~~~~^
The afore mentioned reference manual specifies also says that...
specification was substantially rewritten to resolve numerous issues in particular, member typedefs value_type and difference_type are added
The P0558R1 specification however seems not to forbid the existence of value_type
.
Any idea what's going on?
Edit
A colleague of mine made me realize that P0558R1 is just a proposal.