Hi,
(Resending to avoid bouncing on the lists.)
I can build the libraries on FreeBSD 10.2 with clang 3.7 and gcc 5.2 in various modes.
However, with both clang 3.7 and gcc 5.2 the following program fails to compile:
#define BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
#include
int main() { }
This works fine with the same compilers and boost 1.59.
The difference seems to be caused a change to boost/thread/detail/thread_group.hpp to use boost::csbl::unique_ptr<> instead of std::auto_ptr<>.
Diff showing the change between 1.59 and 1.60 in thread_group.hpp and the compiler error messages below.
Regards,
Jan Mikkelsen
$ diff -u thread/detail/thread_group.hpp ../../boost-1_60/boost/thread/detail/thread_group.hpp
--- thread/detail/thread_group.hpp 2015-12-17 01:08:28.000000000 +1100
+++ ../../boost-1_60/boost/thread/detail/thread_group.hpp 2015-12-17 01:20:56.000000000 +1100
@@ -6,6 +6,7 @@
// (C) Copyright 2007-9 Anthony Williams
#include <list>
+#include
#include
#include
#include
@@ -75,7 +76,7 @@
thread* create_thread(F threadfunc)
{
boost::lock_guard guard(m);
- std::auto_ptr<thread> new_thread(new thread(threadfunc));
+ boost::csbl::unique_ptr<thread> new_thread(new thread(threadfunc));
threads.push_back(new_thread.get());
return new_thread.release();
}
$ g++5 -std=c++14 -isystem /usr/local/include/boost-1_60 twio/test_thread.cpp
In file included from /usr/local/include/boost-1_60/boost/thread/csbl/memory/unique_ptr.hpp:16:0,
from /usr/local/include/boost-1_60/boost/thread/detail/thread_group.hpp:9,
from /usr/local/include/boost-1_60/boost/thread/thread.hpp:13,
from /usr/local/include/boost-1_60/boost/thread.hpp:13,
from twio/test_thread.cpp:2:
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp: In constructor 'boost::movelib::unique_ptr::unique_ptr(boost::movelib::unique_ptr&&)':
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:530:29: error: 'move_if_not_lvalue_reference' is not a member of 'boost'
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<D>(u.get_deleter()))
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:530:68: error: expected primary-expression before '>' token
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<D>(u.get_deleter()))
^
In file included from /usr/local/include/boost-1_60/boost/thread/csbl/memory/unique_ptr.hpp:16:0,
from /usr/local/include/boost-1_60/boost/thread/detail/thread_group.hpp:9,
from /usr/local/include/boost-1_60/boost/thread/thread.hpp:13,
from /usr/local/include/boost-1_60/boost/thread.hpp:13,
from twio/test_thread.cpp:2:
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp: In constructor 'boost::movelib::unique_ptr::unique_ptr(boost::movelib::unique_ptr&&, typename boost::move_upd::enable_up_moveconv_constr::type*)':
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:552:29: error: 'move_if_not_lvalue_reference' is not a member of 'boost'
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<E>(u.get_deleter()))
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:552:68: error: expected primary-expression before '>' token
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<E>(u.get_deleter()))
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp: In member function 'boost::movelib::unique_ptr& boost::movelib::unique_ptr::operator=(boost::movelib::unique_ptr&&)':
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:581:26: error: 'move_if_not_lvalue_reference' is not a member of 'boost'
m_data.deleter() = ::boost::move_if_not_lvalue_reference<D>(u.get_deleter());
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:581:65: error: expected primary-expression before '>' token
m_data.deleter() = ::boost::move_if_not_lvalue_reference<D>(u.get_deleter());
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp: In member function 'typename boost::move_upd::enable_up_moveconv_assign&>::type boost::movelib::unique_ptr::operator=(boost::movelib::unique_ptr&&)':
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:603:26: error: 'move_if_not_lvalue_reference' is not a member of 'boost'
m_data.deleter() = ::boost::move_if_not_lvalue_reference<E>(u.get_deleter());
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:603:65: error: expected primary-expression before '>' token
m_data.deleter() = ::boost::move_if_not_lvalue_reference<E>(u.get_deleter());
^
$ clang++37 -std=c++14 -isystem /usr/local/include/boost-1_60 twio/test_thread.cpp
In file included from twio/test_thread.cpp:2:
In file included from /usr/local/include/boost-1_60/boost/thread.hpp:13:
In file included from /usr/local/include/boost-1_60/boost/thread/thread.hpp:13:
In file included from /usr/local/include/boost-1_60/boost/thread/detail/thread_group.hpp:9:
In file included from /usr/local/include/boost-1_60/boost/thread/csbl/memory/unique_ptr.hpp:16:
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:530:67: error: 'D' does
not refer to a value
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<D>(u.g...
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:353:26: note: declared
here
template
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:530:38: error: no member
named 'move_if_not_lvalue_reference' in namespace 'boost'
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<D>(u.g...
~~~~~~~~~^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:552:67: error: 'E' does
not refer to a value
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<E>(u.g...
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:548:29: note: declared
here
template
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:552:38: error: no member
named 'move_if_not_lvalue_reference' in namespace 'boost'
: m_data(u.release(), ::boost::move_if_not_lvalue_reference<E>(u.g...
~~~~~~~~~^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:581:64: error: 'D' does
not refer to a value
m_data.deleter() = ::boost::move_if_not_lvalue_reference<D>(u.get_...
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:353:26: note: declared
here
template
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:581:35: error: no member
named 'move_if_not_lvalue_reference' in namespace 'boost'
m_data.deleter() = ::boost::move_if_not_lvalue_reference<D>(u.get_...
~~~~~~~~~^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:603:64: error: 'E' does
not refer to a value
m_data.deleter() = ::boost::move_if_not_lvalue_reference<E>(u.get_...
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:597:29: note: declared
here
template
^
/usr/local/include/boost-1_60/boost/move/unique_ptr.hpp:603:35: error: no member
named 'move_if_not_lvalue_reference' in namespace 'boost'
m_data.deleter() = ::boost::move_if_not_lvalue_reference<E>(u.get_...
~~~~~~~~~^
8 errors generated.
On 15 Dec 2015, at 02:54, Marshall Clow mailto:mclow.lists@gmail.com> wrote:
Release candidate files for 1.60.0 are available at: http://boost.cowic.de/rc/ http://boost.cowic.de/rc/
As always, the release managers would appreciate it if you download
the candidate of your choice and give building it a try. Please report
both success and failure, and anything else that is noteworthy.
This helps ensure the candidates build OK before we push them out to SourceForge.
The files (and associated md5s) are:
MD5 (boost_1_60_0_rc1.7z) = 7ce7f5a4e396484da8da6b60d4ed7661
MD5 (boost_1_60_0_rc1.tar.bz2) = 65a840e1a0b13a558ff19eeb2c4f0cbe
MD5 (boost_1_60_0_rc1.tar.gz) = 28f58b9a33469388302110562bdf6188
MD5 (boost_1_60_0_rc1.zip) = 0cc5b9cf9ccdf26945b225c7338b4288
Thanks!
-- The release managers
P.S. Release notes are here: http://www.boost.org/users/history/version_1_60_0.html http://www.boost.org/users/history/version_1_60_0.html
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-announce http://lists.boost.org/mailman/listinfo.cgi/boost-announce