
On Sun, Feb 28, 2010 at 2:08 AM, Tim Blechmann <tim@klingt.org> 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> ]