Hi Windows experts,

Here's another Windows warning that I'll like a hand resolving:

2>..\common\Atomic.cpp(133) : warning C4239: nonstandard extension
used : 'static_cast' : conversion from 'volatile const long' to
'volatile const unsigned int &'

The code is:

Atomic::operator unsigned() const
{
#if defined(_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS)
    __sync_synchronize();
    return _value;
#elif defined(_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED)
    MemoryBarrier();
    return static_cast<unsigned const volatile &>(_value);
    <<<< Here is line 133, problem line.
#elif defined(_OPENTHREADS_ATOMIC_USE_BSD_ATOMIC)
    OSMemoryBarrier();
    return static_cast<unsigned const volatile>(_value);
#else
# error This implementation should happen inline in the include file
#endif
}

To me a fix would be to remove the & from the static_cast<unsigned
const volatile &> as it seems a tad superfluous in this method as it's
returning an unsigned int on the stack anyway.

Thoughts?
Robert.
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to