Hi, there is a regression on Boost.Atomic on a lot of compilers. See
regression test on Boost.Thread
http://www.boost.org/development/tests/develop/developer/thread.html
synchronized_value__default_ctor_p
https://github.com/boostorg/thread/blob/develop/test/sync/mutual_exclusion/s...
Please, could Time or Ardrey take care of this issue?
Best,
Vicente
Test output: jasonr-Ubuntu13.10-gcc - thread -
synchronized_value__default_ctor_p / gcc-4.8.1
Rev cfaf6902e696a50a8f8c81510e676aaa547c7706 / Sun, 08 Jun 2014 00:02:00
+0000
Compile [2014-06-08 04:29:08 UTC]: fail
"g++-4.8" -ftemplate-depth-128 -O0 -fno-inline -Wall -pedantic -g -pthread -fPIC -Wextra -Wno-long-long -Wno-variadic-macros -Wunused-function -pedantic -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED -DBOOST_THREAD_USE_DLL=1 -I".." -c -o "/hd/boosttest_new/results/boost/bin.v2/libs/thread/test/synchronized_value__default_ctor_p.test/gcc-4.8.1/debug/threading-multi/sync/mutual_exclusion/synchronized_value/default_ctor_pass.o" "../libs/thread/test/sync/mutual_exclusion/synchronized_value/default_ctor_pass.cpp"
In file included from ../boost/atomic/detail/atomic_template.hpp:25:0,
from ../boost/atomic/atomic.hpp:22,
from ../boost/atomic.hpp:12,
from ../boost/thread/testable_mutex.hpp:14,
from ../libs/thread/test/sync/mutual_exclusion/synchronized_value/default_ctor_pass.cpp:15:
../boost/atomic/detail/union_cast.hpp: In instantiation of ???union boost::atomics::detail::union_cast(const From&) [with To = boost::thread::id; From = long unsigned int]::<anonymous>???:
../boost/atomic/detail/union_cast.hpp:36:5: required from ???To boost::atomics::detail::union_cast(const From&) [with To = boost::thread::id; From = long unsigned int]???
../boost/atomic/detail/atomic_template.hpp:355:92: required from ???boost::atomics::detail::base_atomic::value_type boost::atomics::detail::base_atomic::load(boost::memory_order) const volatile [with T = boost::thread::id; boost::atomics::detail::base_atomic::value_type = boost::thread::id]???
../boost/atomic/detail/atomic_template.hpp:697:27: required from ???boost::atomics::atomic<T>::operator boost::atomics::atomic<T>::value_type() const volatile [with T = boost::thread::id; boost::atomics::atomic<T>::value_type = boost::thread::id]???
../boost/thread/testable_mutex.hpp:113:30: required from ???bool boost::testable_mutex<Lockable>::is_locked() const [with Lockable = boost::mutex]???
../libs/thread/test/sync/mutual_exclusion/synchronized_value/default_ctor_pass.cpp:24:7: required from here
../boost/atomic/detail/union_cast.hpp:34:12: error: member ???boost::thread::id boost::atomics::detail::union_cast(const From&) [with To = boost::thread::id; From = long unsigned int]::<anonymous union>::as_to??? with constructor not allowed in union
To as_to;
^
../boost/atomic/detail/union_cast.hpp:34:12: note: unrestricted unions only available with -std=c++11 or -std=gnu++11
../boost/atomic/detail/union_cast.hpp: In instantiation of ???union boost::atomics::detail::union_cast(const From&) [with To = long unsigned int; From = boost::thread::id]::<anonymous>???:
../boost/atomic/detail/union_cast.hpp:36:5: required from ???To boost::atomics::detail::union_cast(const From&) [with To = long unsigned int; From = boost::thread::id]???
../boost/atomic/detail/atomic_template.hpp:337:137: required from ???boost::atomics::detail::base_atomic::base_atomic(const value_type&) [with T = boost::thread::id; boost::atomics::detail::base_atomic::value_type = boost::thread::id]???
../boost/atomic/detail/atomic_template.hpp:687:101: required from ???boost::atomics::atomic<T>::atomic(boost::atomics::atomic<T>::value_arg_type) [with T = boost::thread::id; boost::atomics::atomic<T>::value_arg_type = const boost::thread::id&]???
../boost/thread/testable_mutex.hpp:47:40: required from ???boost::testable_mutex<Lockable>::testable_mutex() [with Lockable = boost::mutex]???
../boost/thread/synchronized_value.hpp:431:14: required from ???boost::synchronized_value::synchronized_value() [with T = int; Lockable = boost::testable_mutexboost::mutex]???
../libs/thread/test/sync/mutual_exclusion/synchronized_value/default_ctor_pass.cpp:23:76: required from here
../boost/atomic/detail/union_cast.hpp:35:14: error: member ???boost::thread::id boost::atomics::detail::union_cast(const From&) [with To = long unsigned int; From = boost::thread::id]::<anonymous union>::as_from??? with constructor not allowed in union
From as_from;
^