Boost logo

Boost :

Subject: Re: [boost] Status of (boost) lockfree?
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2010-03-01 18:03:11


On Sun, Feb 28, 2010 at 2:08 AM, Tim Blechmann <tim_at_[hidden]> wrote:
> hello emil,
>
> i ported boost.lockfree to boost.atomic. the archive in the vault doesn't
> reflect this change yet, but you can check out my latest sources from my git
> repository [1,2].
> the specific code, that triggered that error message has been replaced by
> boost.atomic ...

I get more problems with the code I downloaded from the git link you
posted on MSVC 9.0. I'm including the complete log at the end of this
message, the issue seems to be that it can't access the size_t typedef
from the base class because it is private. Changing the ringbuffer
functions to use std::size_t fixes the errors.

So what is the status of lockfree? What compilers is it tested with?
Can I rely on ringbuffer working now that I've got it to compile?

Emil Dotchevski
Reverge Studios, Inc.
http://www.revergestudios.com/reblog/index.php?n=ReCode

----
z:\code\lib\lockfree\boost\atomic.hpp(167) : warning C4800: 'intptr_t'
: forcing value to bool 'true' or 'false' (performance warning)
z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(216) : error C2248:
'boost::lockfree::detail::ringbuffer_internal<T>::size_t' : cannot
access private typedef declared in class
'boost::lockfree::detail::ringbuffer_internal<T>'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
        z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(39) : see
declaration of 'boost::lockfree::detail::ringbuffer_internal<T>::size_t'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
        z:\code\dev\reverge\sfx\sfx-windows.cpp(408) : see reference
to class template instantiation
'boost::lockfree::ringbuffer<T,max_size>' being compiled
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>,
            max_size=64
        ]
z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(217) : error C2248:
'boost::lockfree::detail::ringbuffer_internal<T>::size_t' : cannot
access private typedef declared in class
'boost::lockfree::detail::ringbuffer_internal<T>'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
        z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(39) : see
declaration of 'boost::lockfree::detail::ringbuffer_internal<T>::size_t'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(221) : error C2248:
'boost::lockfree::detail::ringbuffer_internal<T>::size_t' : cannot
access private typedef declared in class
'boost::lockfree::detail::ringbuffer_internal<T>'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
        z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(39) : see
declaration of 'boost::lockfree::detail::ringbuffer_internal<T>::size_t'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(222) : error C2248:
'boost::lockfree::detail::ringbuffer_internal<T>::size_t' : cannot
access private typedef declared in class
'boost::lockfree::detail::ringbuffer_internal<T>'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]
        z:\code\lib\lockfree\boost\lockfree\ringbuffer.hpp(39) : see
declaration of 'boost::lockfree::detail::ringbuffer_internal<T>::size_t'
        with
        [
            T=boost::shared_ptr<const re::sfx::sound>
        ]

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk