-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
I get the following error messages after trying to compile under debian wheezy with libc++ from testing.
$ make 2>out
out:
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:109:
./cells-impl.hpp:58:61: error: type of thread-local variable has non-trivial destruction
static thread_local dynvar<std::forward_list<observer*> > current_dependencies;
^
./cells-impl.hpp:58:61: note: use 'thread_local' to allow this
./cells-impl.hpp:59:43: error: type of thread-local variable has non-trivial destruction
static thread_local dynvar<transaction> current_transaction;
^
./cells-impl.hpp:59:43: note: use 'thread_local' to allow this
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type 'cells::observer *' cannot bind to lvalue of type 'cells::observer *'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, cells::observer *&&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/memory:4290:26: note: in instantiation of function template specialization 'std::__1::__shared_ptr_emplace<cells::observer *, std::__1::allocator<cells::observer *> >::__shared_ptr_emplace<cells::observer *>' requested here
::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);
^
/usr/include/c++/v1/memory:4649:29: note: in instantiation of function template specialization 'std::__1::shared_ptr<cells::observer *>::make_shared<cells::observer *>' requested here
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
^
./cells-impl.hpp:61:43: note: in instantiation of function template specialization 'std::__1::make_shared<cells::observer *, cells::observer *>' requested here
inline observer::observer() : self(std::make_shared<observer*>(this)) { };
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type '<lambda at ./cells-impl.hpp:120:24>' cannot bind to lvalue of type '<lambda at ./cells-impl.hpp:120:24>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, <lambda at ./cells-impl.hpp:120:24> &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1600:26: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:120:24>, std::__1::allocator<<lambda at ./cells-impl.hpp:120:24> >, void ()>::__func' requested here
::new (__f_) _FF(_VSTD::move(__f));
^
./cells-impl.hpp:120:24: note: in instantiation of function template specialization 'std::__1::function<void ()>::function<<lambda at ./cells-impl.hpp:120:24> >' requested here
with_transaction([&]() { this->mark(); });
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type 'allocator<[...]>' cannot bind to lvalue of type 'allocator<[...]>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, std::__1::allocator<<lambda at ./cells-impl.hpp:120:24> > &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1608:34: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:120:24>, std::__1::allocator<<lambda at ./cells-impl.hpp:120:24> >, void ()>::__func' requested here
::new (__hold.get()) _FF(_VSTD::move(__f), allocator<_Fp>(__a));
^
./cells-impl.hpp:120:24: note: in instantiation of function template specialization 'std::__1::function<void ()>::function<<lambda at ./cells-impl.hpp:120:24> >' requested here
with_transaction([&]() { this->mark(); });
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type '<lambda at ./cells-impl.hpp:219:65>' cannot bind to lvalue of type '<lambda at ./cells-impl.hpp:219:65>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, <lambda at ./cells-impl.hpp:219:65> &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1600:26: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:219:65>, std::__1::allocator<<lambda at ./cells-impl.hpp:219:65> >, void ()>::__func' requested here
::new (__f_) _FF(_VSTD::move(__f));
^
./cells-impl.hpp:219:65: note: in instantiation of function template specialization 'std::__1::function<void ()>::function<<lambda at ./cells-impl.hpp:219:65> >' requested here
with<transaction, void>(current_transaction, transaction(), [&]() -> void {
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type 'allocator<[...]>' cannot bind to lvalue of type 'allocator<[...]>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, std::__1::allocator<<lambda at ./cells-impl.hpp:219:65> > &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1608:34: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:219:65>, std::__1::allocator<<lambda at ./cells-impl.hpp:219:65> >, void ()>::__func' requested here
::new (__hold.get()) _FF(_VSTD::move(__f), allocator<_Fp>(__a));
^
./cells-impl.hpp:219:65: note: in instantiation of function template specialization 'std::__1::function<void ()>::function<<lambda at ./cells-impl.hpp:219:65> >' requested here
with<transaction, void>(current_transaction, transaction(), [&]() -> void {
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type '<lambda at ./cells-impl.hpp:191:26>' cannot bind to lvalue of type '<lambda at ./cells-impl.hpp:191:26>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, <lambda at ./cells-impl.hpp:191:26> &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1600:26: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:191:26>, std::__1::allocator<<lambda at ./cells-impl.hpp:191:26> >, double (double)>::__func' requested here
::new (__f_) _FF(_VSTD::move(__f));
^
/usr/include/c++/v1/functional:1701:5: note: in instantiation of function template specialization 'std::__1::function<double (double)>::function<<lambda at ./cells-impl.hpp:191:26> >' requested here
function(_VSTD::forward<_Fp>(__f)).swap(*this);
^
./cells-impl.hpp:191:23: note: in instantiation of function template specialization 'std::__1::function<double (double)>::operator=<<lambda at ./cells-impl.hpp:191:26> >' requested here
this->alt_formula = ([=](T) { return value; });
^
cells-test.cpp:41:10: note: in instantiation of member function 'cells::formula_cell<double>::reset' requested here
x0.reset(10);
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type 'allocator<[...]>' cannot bind to lvalue of type 'allocator<[...]>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, std::__1::allocator<<lambda at ./cells-impl.hpp:191:26> > &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1608:34: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:191:26>, std::__1::allocator<<lambda at ./cells-impl.hpp:191:26> >, double (double)>::__func' requested here
::new (__hold.get()) _FF(_VSTD::move(__f), allocator<_Fp>(__a));
^
/usr/include/c++/v1/functional:1701:5: note: in instantiation of function template specialization 'std::__1::function<double (double)>::function<<lambda at ./cells-impl.hpp:191:26> >' requested here
function(_VSTD::forward<_Fp>(__f)).swap(*this);
^
./cells-impl.hpp:191:23: note: in instantiation of function template specialization 'std::__1::function<double (double)>::operator=<<lambda at ./cells-impl.hpp:191:26> >' requested here
this->alt_formula = ([=](T) { return value; });
^
cells-test.cpp:41:10: note: in instantiation of member function 'cells::formula_cell<double>::reset' requested here
x0.reset(10);
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type '<lambda at ./cells-impl.hpp:192:26>' cannot bind to lvalue of type '<lambda at ./cells-impl.hpp:192:26>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, <lambda at ./cells-impl.hpp:192:26> &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1600:26: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:192:26>, std::__1::allocator<<lambda at ./cells-impl.hpp:192:26> >, double ()>::__func' requested here
::new (__f_) _FF(_VSTD::move(__f));
^
/usr/include/c++/v1/functional:1701:5: note: in instantiation of function template specialization 'std::__1::function<double ()>::function<<lambda at ./cells-impl.hpp:192:26> >' requested here
function(_VSTD::forward<_Fp>(__f)).swap(*this);
^
./cells-impl.hpp:192:23: note: in instantiation of function template specialization 'std::__1::function<double ()>::operator=<<lambda at ./cells-impl.hpp:192:26> >' requested here
this->formula = ([=]() { return value; });
^
cells-test.cpp:41:10: note: in instantiation of member function 'cells::formula_cell<double>::reset' requested here
x0.reset(10);
^
In file included from cells-test.cpp:17:
In file included from ./cells.hpp:22:
In file included from /usr/include/c++/v1/functional:489:
In file included from /usr/include/c++/v1/memory:603:
/usr/include/c++/v1/tuple:330:10: error: static_assert failed "Can not copy a tuple with rvalue reference member"
{static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/tuple:329:11: error: rvalue reference to type 'allocator<[...]>' cannot bind to lvalue of type 'allocator<[...]>'
: value(__t.get())
^ ~~~~~~~~~
/usr/include/c++/v1/tuple:447:8: note: in instantiation of member function 'std::__1::__tuple_leaf<0, std::__1::allocator<<lambda at ./cells-impl.hpp:192:26> > &&, false>::__tuple_leaf' requested here
struct __tuple_impl<__tuple_indices<_Indx...>, _Tp...>
^
/usr/include/c++/v1/functional:1608:34: note: in instantiation of member function 'std::__1::__function::__func<<lambda at ./cells-impl.hpp:192:26>, std::__1::allocator<<lambda at ./cells-impl.hpp:192:26> >, double ()>::__func' requested here
::new (__hold.get()) _FF(_VSTD::move(__f), allocator<_Fp>(__a));
^
/usr/include/c++/v1/functional:1701:5: note: in instantiation of function template specialization 'std::__1::function<double ()>::function<<lambda at ./cells-impl.hpp:192:26> >' requested here
function(_VSTD::forward<_Fp>(__f)).swap(*this);
^
./cells-impl.hpp:192:23: note: in instantiation of function template specialization 'std::__1::function<double ()>::operator=<<lambda at ./cells-impl.hpp:192:26> >' requested here
this->formula = ([=]() { return value; });
^
cells-test.cpp:41:10: note: in instantiation of member function 'cells::formula_cell<double>::reset' requested here
x0.reset(10);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [cells-test] Error 1
Metadata
Metadata
Assignees
Labels
No labels