[cfe-dev] Compiling boost with -std=c++0x (and -stdlib=libc++)
Ryuta Suzuki
ryuuta at gmail.com
Sun Jul 17 06:43:25 PDT 2011
Hi,
I have trouble compiling the following trivial boost program
#include <boost/thread/thread.hpp>
int main()
{
return 0;
}
Actually, clang and libc++ work perfectly fine:
[ryuta at oroppas]$ clang++ -stdlib=libc++ ./boost_thread.cpp
However, once we deploy -std=c++0x flag,
[ryuta at oroppas]$ clang++ -std=c++0x -stdlib=libc++ ./boost_thread.cpp
In file included from ./boost_thread.cpp:1:
In file included from /usr/include/boost/thread/thread.hpp:17:
/usr/include/boost/thread/pthread/thread_data.hpp:36:17: error: call to
deleted constructor of
'boost::shared_ptr<boost::detail::tss_cleanup_function>'
func(func_),value(value_)
^ ~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:164:25: note: function has been
explicitly marked deleted here
template<class T> class shared_ptr
^
In file included from ./boost_thread.cpp:1:
In file included from /usr/include/boost/thread/thread.hpp:22:
/usr/include/boost/thread/detail/thread.hpp:395:13: error: call to deleted
constructor of 'detail::thread_data_ptr'
(aka 'shared_ptr<boost::detail::thread_data_base>')
thread_data(thread_data_)
^ ~~~~~~~~~~~~
/usr/include/boost/smart_ptr/shared_ptr.hpp:464:36: note: function has been
explicitly marked deleted here
template<class Y> friend class shared_ptr;
^
/usr/include/boost/smart_ptr/shared_ptr.hpp:301:9: error: functional-style
cast from 'const boost::shared_ptr<boost::detail::thread_data_base>' to
'this_type'
(aka 'shared_ptr<boost::detail::thread_data_base>') uses deleted
function
this_type(r).swap(*this);
^~~~~~~~~~~
/usr/include/boost/thread/detail/thread.hpp:181:24: note: in instantiation
of member function
'boost::shared_ptr<boost::detail::thread_data_base>::operator='
requested here
thread_info=other.thread_info;
^
/usr/include/boost/smart_ptr/shared_ptr.hpp:464:36: note: candidate
constructor (the implicit copy constructor) has been explicitly deleted
template<class Y> friend class shared_ptr;
^
/usr/include/boost/smart_ptr/shared_ptr.hpp:227:5: note: candidate
constructor [with Y = boost::detail::thread_data_base]
shared_ptr( shared_ptr<Y> const & r, typename
boost::detail::sp_enable_if_convertible<Y,T>::type =
boost::detail::sp_empty() )
^
3 errors generated.
I'm not sure if this could be a boost / clang / libc++ bug.
Any comment will be greatly appreciated.
Thanks,
Ryuta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110717/94f30fc7/attachment.html>
More information about the cfe-dev
mailing list