[Interest] QAtomicInt overflow / wrap-around?
Thiago Macieira
thiago.macieira at intel.com
Thu May 15 23:07:07 CEST 2014
Em qui 15 maio 2014, às 22:08:49, Markus Pointner escreveu:
> >> I am aware that for regular non-atomic ints, this would be undefined
> >> behaviour, whereas unsigned ints are defined to wrap around. I would
> >> prefer
> >> the wrap-around behaviour for my atomic value.
> >
> > Then use QAtomicInteger<unsigned>. That is guaranteed to exist and work on
> > all platforms. If you need a larger address space, use
> > QAtomicInteger<quintptr> or check if Q_ATOMIC_INT64_IS_SUPPORTED is
> > defined.
>
> But QAtomicInteger is only available in 5.3, right? We are currently
> switching to 5.2, and I saw a QBasicAtomicInteger template there, but it's
> not in the documentation. Can I use that?
QAtomicInteger has been there since 5.0, though it wasn't publicly documented
until 5.3. It's present whenever Q_ATOMIC_INT32_IS_SUPPORTED is defined. The
difference is that in 5.3 all implementations define it, so it's present
everywhere and got documented.
So go ahead and use it. I've got unit tests testing the wrap-around too,
though they add 42, not 1.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Interest
mailing list