Problems using boost::interprocess on Mac OS X

Hi All, I'm trying to use boost::interprocess::named_mutex (1.47.0) on Mac OS X (10.6.7) with GCC 4.0, but I get loads of errors when compiling, the first ones shown here: /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38:0 /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38: error: expected type-specifier before 'Lm_arg' /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38:0 /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38: error: expected `)' before 'Lm_arg' /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38:0 /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38: error: expected `;' before 'Lm_arg' /boost_1_47_0/boost/exception/exception.hpp:320:0 /boost_1_47_0/boost/exception/exception.hpp:320: error: anachronistic old-style base class initializer /boost_1_47_0/boost/exception/exception.hpp:320:0 /boost_1_47_0/boost/exception/exception.hpp:320: error: unnamed initializer for 'boost::exception_detail::error_info_injector<T>', which uses multiple inheritance /boost_1_47_0/boost/exception/exception.hpp:321:0 /boost_1_47_0/boost/exception/exception.hpp:321: error: 'Lx' was not declared in this scope /boost_1_47_0/boost/exception/exception.hpp:418:0 /boost_1_47_0/boost/exception/exception.hpp:418: error: anachronistic old-style base class initializer /boost_1_47_0/boost/exception/exception.hpp:418:0 /boost_1_47_0/boost/exception/exception.hpp:418: error: unnamed initializer for 'boost::exception_detail::clone_impl<T>', which uses multiple inheritance /boost_1_47_0/boost/exception/exception.hpp:419:0 /boost_1_47_0/boost/exception/exception.hpp:419: error: 'Lx' was not declared in this scope ... Any ideas how to fix this ? TIA /Rob

On Thu, Jan 05, 2012 at 09:53:29AM +0100, Robert Bielik wrote:
Hi All,
I'm trying to use boost::interprocess::named_mutex (1.47.0) on Mac OS X (10.6.7) with GCC 4.0, but I get loads of errors when compiling, the first ones shown here:
/boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38:0 /boost_1_47_0/boost/interprocess/sync/emulation/named_creation_functor.hpp:38: error: expected type-specifier before 'Lm_arg'
The line in question here is: 38 { new(address)T(m_arg); } Some header or your platform has a function-style macro #define T(X) L ## X Find it and shake a fist at the author.
/boost_1_47_0/boost/exception/exception.hpp:320:0 /boost_1_47_0/boost/exception/exception.hpp:320: error: anachronistic old-style base class initializer /boost_1_47_0/boost/exception/exception.hpp:320:0 /boost_1_47_0/boost/exception/exception.hpp:320: error: unnamed initializer for 'boost::exception_detail::error_info_injector<T>', which uses multiple inheritance /boost_1_47_0/boost/exception/exception.hpp:321:0 /boost_1_47_0/boost/exception/exception.hpp:321: error: 'Lx' was not declared in this scope
Same thing.
Any ideas how to fix this ?
#undef T -- Lars Viklund | zao@acc.umu.se
participants (2)
-
Lars Viklund
-
Robert Bielik