In file included from prog.cpp:1:0:
/usr/include/c++/6/functional: In instantiation of ‘std::_Bind<_Functor(_Bound_args ...)>::_Bind(_Functor&&, _Args&& ...) [with _Args = {std::unique_ptr<test, std::default_delete<test> >&, const std::_Placeholder<1>&}; _Functor = std::_Mem_fn<void (test::*)(int)>; _Bound_args = {std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1>}]’:
/usr/include/c++/6/functional:1327:14: required from ‘typename std::_Bind_helper<std::__is_socketlike<_Func>::value, _Func, _BoundArgs ...>::type std::bind(_Func&&, _BoundArgs&& ...) [with _Func = void (test::*)(int); _BoundArgs = {std::unique_ptr<test, std::default_delete<test> >&, const std::_Placeholder<1>&}; typename std::_Bind_helper<std::__is_socketlike<_Func>::value, _Func, _BoundArgs ...>::type = std::_Bind<std::_Mem_fn<void (test::*)(int)>(std::unique_ptr<test>, std::_Placeholder<1>)>]’
prog.cpp:22:83: required from here
/usr/include/c++/6/functional:974:70: error: no matching function for call to ‘std::tuple<std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::tuple(std::unique_ptr<test>&, const std::_Placeholder<1>&)’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1162:18: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && (! _ImplicitlyMoveConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, std::pair<_U1, _U2>&&)
explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1162:18: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1152:9: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && _ImplicitlyMoveConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, std::pair<_U1, _U2>&&)
tuple(allocator_arg_t __tag, const _Alloc& __a, pair<_U1, _U2>&& __in)
^~~~~
/usr/include/c++/6/tuple:1152:9: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1142:18: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && (! _ImplicitlyConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const std::pair<_U1, _U2>&)
explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1142:18: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1132:9: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && _ImplicitlyConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const std::pair<_U1, _U2>&)
tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1132:9: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1121:11: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && (! _ImplicitlyMoveConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, std::tuple<_U1, _U2>&&)
explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1121:11: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1111:2: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && _ImplicitlyMoveConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, std::tuple<_U1, _U2>&&)
tuple(allocator_arg_t __tag, const _Alloc& __a, tuple<_U1, _U2>&& __in)
^~~~~
/usr/include/c++/6/tuple:1111:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1099:11: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && (! _ImplicitlyConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const std::tuple<_U1, _U2>&)
explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1099:11: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1087:2: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && _ImplicitlyConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const std::tuple<_U1, _U2>&)
tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1087:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1078:2: note: candidate: template<class _Alloc> std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, std::tuple<_T1, _T2>&&)
tuple(allocator_arg_t __tag, const _Alloc& __a, tuple&& __in)
^~~~~
/usr/include/c++/6/tuple:1078:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1074:2: note: candidate: template<class _Alloc> std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const std::tuple<_T1, _T2>&)
tuple(allocator_arg_t __tag, const _Alloc& __a, const tuple& __in)
^~~~~
/usr/include/c++/6/tuple:1074:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 3 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1068:11: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && (! _ImplicitlyMoveConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, _U1&&, _U2&&)
explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1068:11: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 4 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1058:2: note: candidate: template<class _Alloc, class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && _ImplicitlyMoveConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, _U1&&, _U2&&)
tuple(allocator_arg_t __tag, const _Alloc& __a, _U1&& __a1, _U2&& __a2)
^~~~~
/usr/include/c++/6/tuple:1058:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 4 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1048:11: note: candidate: template<class _Alloc, class _Dummy, typename std::enable_if<(std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ConstructibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >() && (! std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ImplicitlyConvertibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >())), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const _T1&, const _T2&)
explicit tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1048:11: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 4 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1036:2: note: candidate: template<class _Alloc, class _Dummy, typename std::enable_if<(std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ConstructibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >() && std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ImplicitlyConvertibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >()), bool>::type <anonymous> > std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&, const _T1&, const _T2&)
tuple(allocator_arg_t __tag, const _Alloc& __a,
^~~~~
/usr/include/c++/6/tuple:1036:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 4 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1025:2: note: candidate: template<class _Alloc> std::tuple<_T1, _T2>::tuple(std::allocator_arg_t, const _Alloc&)
tuple(allocator_arg_t __tag, const _Alloc& __a)
^~~~~
/usr/include/c++/6/tuple:1025:2: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: cannot convert ‘std::forward<std::unique_ptr<test>&>((* & __args#0))’ (type ‘std::unique_ptr<test>’) to type ‘std::allocator_arg_t’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1018:28: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && (! _ImplicitlyMoveConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(std::pair<_U1, _U2>&&)
explicit constexpr tuple(pair<_U1, _U2>&& __in)
^~~~~
/usr/include/c++/6/tuple:1018:28: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘std::pair<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:1008:19: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && _ImplicitlyMoveConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(std::pair<_U1, _U2>&&)
constexpr tuple(pair<_U1, _U2>&& __in)
^~~~~
/usr/include/c++/6/tuple:1008:19: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘std::pair<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:999:28: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && (! _ImplicitlyConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(const std::pair<_U1, _U2>&)
explicit constexpr tuple(const pair<_U1, _U2>& __in)
^~~~~
/usr/include/c++/6/tuple:999:28: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘const std::pair<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:990:19: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && _ImplicitlyConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(const std::pair<_U1, _U2>&)
constexpr tuple(const pair<_U1, _U2>& __in)
^~~~~
/usr/include/c++/6/tuple:990:19: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘const std::pair<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:981:28: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && (! _ImplicitlyMoveConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(std::tuple<_U1, _U2>&&)
explicit constexpr tuple(tuple<_U1, _U2>&& __in)
^~~~~
/usr/include/c++/6/tuple:981:28: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘std::tuple<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:972:19: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_MoveConstructibleTuple<_U1, _U2>() && _ImplicitlyMoveConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(std::tuple<_U1, _U2>&&)
constexpr tuple(tuple<_U1, _U2>&& __in)
^~~~~
/usr/include/c++/6/tuple:972:19: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘std::tuple<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:963:28: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && (! _ImplicitlyConvertibleTuple<_U1, _U2>())), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(const std::tuple<_U1, _U2>&)
explicit constexpr tuple(const tuple<_U1, _U2>& __in)
^~~~~
/usr/include/c++/6/tuple:963:28: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘const std::tuple<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:954:19: note: candidate: template<class _U1, class _U2, typename std::enable_if<(_ConstructibleTuple<_U1, _U2>() && _ImplicitlyConvertibleTuple<_U1, _U2>()), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(const std::tuple<_U1, _U2>&)
constexpr tuple(const tuple<_U1, _U2>& __in)
^~~~~
/usr/include/c++/6/tuple:954:19: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: ‘std::unique_ptr<test>’ is not derived from ‘const std::tuple<_T1, _T2>’
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:946:17: note: candidate: constexpr std::tuple<_T1, _T2>::tuple(std::tuple<_T1, _T2>&&) [with _T1 = std::unique_ptr<test>; _T2 = std::_Placeholder<1>]
constexpr tuple(tuple&&) = default;
^~~~~
/usr/include/c++/6/tuple:946:17: note: candidate expects 1 argument, 2 provided
/usr/include/c++/6/tuple:941:28: note: candidate: template<class _U1, class _U2, typename std::enable_if<((_MoveConstructibleTuple<_U1, _U2>() && (! _ImplicitlyMoveConvertibleTuple<_U1, _U2>())) && (! std::is_same<typename std::decay<_Tp>::type, std::allocator_arg_t>::value)), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(_U1&&, _U2&&)
explicit constexpr tuple(_U1&& __a1, _U2&& __a2)
^~~~~
/usr/include/c++/6/tuple:941:28: note: template argument deduction/substitution failed:
/usr/include/c++/6/tuple:940:16: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
bool>::type = false>
^~~~~
/usr/include/c++/6/tuple:940:16: note: invalid template non-type parameter
/usr/include/c++/6/tuple:930:19: note: candidate: template<class _U1, class _U2, typename std::enable_if<((_MoveConstructibleTuple<_U1, _U2>() && _ImplicitlyMoveConvertibleTuple<_U1, _U2>()) && (! std::is_same<typename std::decay<_Tp>::type, std::allocator_arg_t>::value)), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(_U1&&, _U2&&)
constexpr tuple(_U1&& __a1, _U2&& __a2)
^~~~~
/usr/include/c++/6/tuple:930:19: note: template argument deduction/substitution failed:
/usr/include/c++/6/tuple:929:16: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
bool>::type = true>
^~~~
/usr/include/c++/6/tuple:929:16: note: invalid template non-type parameter
/usr/include/c++/6/tuple:915:28: note: candidate: template<class _Dummy, typename std::enable_if<(std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ConstructibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >() && (! std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ImplicitlyConvertibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >())), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&)
explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
^~~~~
/usr/include/c++/6/tuple:915:28: note: template argument deduction/substitution failed:
/usr/include/c++/6/tuple:914:16: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
bool>::type = false>
^~~~~
/usr/include/c++/6/tuple:914:16: note: invalid template non-type parameter
/usr/include/c++/6/tuple:906:19: note: candidate: template<class _Dummy, typename std::enable_if<(std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ConstructibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >() && std::_TC<std::is_same<_Dummy, void>::value, std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1> >::_ImplicitlyConvertibleTuple<unique_ptr<test, std::default_delete<test> >, _Placeholder<1> >()), bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple(const _T1&, const _T2&)
constexpr tuple(const _T1& __a1, const _T2& __a2)
^~~~~
/usr/include/c++/6/tuple:906:19: note: template argument deduction/substitution failed:
/usr/include/c++/6/tuple:905:16: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
bool>::type = true>
^~~~
/usr/include/c++/6/tuple:905:16: note: invalid template non-type parameter
/usr/include/c++/6/tuple:892:26: note: candidate: template<class _U1, class _U2, typename std::enable_if<std::__and_<std::is_default_constructible<_Tp>, std::is_default_constructible<_U2>, std::__not_<std::__and_<std::__is_implicitly_default_constructible<_U1>, std::__is_implicitly_default_constructible<_U2> > > >::value, bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple()
explicit constexpr tuple()
^~~~~
/usr/include/c++/6/tuple:892:26: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 0 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:878:17: note: candidate: template<class _U1, class _U2, typename std::enable_if<std::__and_<std::__is_implicitly_default_constructible<_U1>, std::__is_implicitly_default_constructible<_U2> >::value, bool>::type <anonymous> > constexpr std::tuple<_T1, _T2>::tuple()
constexpr tuple()
^~~~~
/usr/include/c++/6/tuple:878:17: note: template argument deduction/substitution failed:
In file included from prog.cpp:1:0:
/usr/include/c++/6/functional:974:70: note: candidate expects 0 arguments, 2 provided
: _M_f(std::move(__f)), _M_bound_args(std::forward<_Args>(__args)...)
^
/usr/include/c++/6/functional: In instantiation of ‘static void std::_Function_base::_Base_manager<_Functor>::_M_clone(std::_Any_data&, const std::_Any_data&, std::false_type) [with _Functor = std::_Bind<std::_Mem_fn<void (test::*)(int)>(std::unique_ptr<test>, std::_Placeholder<1>)>; std::false_type = std::integral_constant<bool, false>]’:
/usr/include/c++/6/functional:1606:16: required from ‘static bool std::_Function_base::_Base_manager<_Functor>::_M_manager(std::_Any_data&, const std::_Any_data&, std::_Manager_operation) [with _Functor = std::_Bind<std::_Mem_fn<void (test::*)(int)>(std::unique_ptr<test>, std::_Placeholder<1>)>]’
/usr/include/c++/6/functional:2116:19: required from ‘std::function<_Res(_ArgTypes ...)>::function(_Functor) [with _Functor = std::_Bind<std::_Mem_fn<void (test::*)(int)>(std::unique_ptr<test>, std::_Placeholder<1>)>; <template-parameter-2-2> = void; <template-parameter-2-3> = void; _Res = void; _ArgTypes = {int}]’
prog.cpp:22:83: required from here
/usr/include/c++/6/functional:1571:6: error: use of deleted function ‘std::_Bind<_Functor(_Bound_args ...)>::_Bind(const std::_Bind<_Functor(_Bound_args ...)>&) [with _Functor = std::_Mem_fn<void (test::*)(int)>; _Bound_args = {std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1>}]’
new _Functor(*__source._M_access<_Functor*>());
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/6/functional:977:7: note: ‘std::_Bind<_Functor(_Bound_args ...)>::_Bind(const std::_Bind<_Functor(_Bound_args ...)>&) [with _Functor = std::_Mem_fn<void (test::*)(int)>; _Bound_args = {std::unique_ptr<test, std::default_delete<test> >, std::_Placeholder<1>}]’ is implicitly deleted because the default definition would be ill-formed:
_Bind(const _Bind&) = default;
^~~~~
/usr/include/c++/6/functional:977:7: error: use of deleted function ‘constexpr std::tuple<_T1, _T2>::tuple(const std::tuple<_T1, _T2>&) [with _T1 = std::unique_ptr<test>; _T2 = std::_Placeholder<1>]’
In file included from /usr/include/c++/6/functional:55:0,
from prog.cpp:1:
/usr/include/c++/6/tuple:944:17: note: ‘constexpr std::tuple<_T1, _T2>::tuple(const std::tuple<_T1, _T2>&) [with _T1 = std::unique_ptr<test>; _T2 = std::_Placeholder<1>]’ is implicitly deleted because the default definition would be ill-formed:
constexpr tuple(const tuple&) = default;
^~~~~
/usr/include/c++/6/tuple:944:17: error: use of deleted function ‘constexpr std::_Tuple_impl<_Idx, _Head, _Tail ...>::_Tuple_impl(const std::_Tuple_impl<_Idx, _Head, _Tail ...>&) [with long unsigned int _Idx = 0ul; _Head = std::unique_ptr<test>; _Tail = {std::_Placeholder<1>}]’
/usr/include/c++/6/tuple:215:17: note: ‘constexpr std::_Tuple_impl<_Idx, _Head, _Tail ...>::_Tuple_impl(const std::_Tuple_impl<_Idx, _Head, _Tail ...>&) [with long unsigned int _Idx = 0ul; _Head = std::unique_ptr<test>; _Tail = {std::_Placeholder<1>}]’ is implicitly deleted because the default definition would be ill-formed:
constexpr _Tuple_impl(const _Tuple_impl&) = default;
^~~~~~~~~~~
/usr/include/c++/6/tuple:215:17: error: use of deleted function ‘constexpr std::_Head_base<_Idx, _Head, false>::_Head_base(const std::_Head_base<_Idx, _Head, false>&) [with long unsigned int _Idx = 0ul; _Head = std::unique_ptr<test>]’
/usr/include/c++/6/tuple:110:17: note: ‘constexpr std::_Head_base<_Idx, _Head, false>::_Head_base(const std::_Head_base<_Idx, _Head, false>&) [with long unsigned int _Idx = 0ul; _Head = std::unique_ptr<test>]’ is implicitly deleted because the default definition would be ill-formed:
constexpr _Head_base(const _Head_base&) = default;
^~~~~~~~~~
/usr/include/c++/6/tuple:110:17: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = test; _Dp = std::default_delete<test>]’
In file included from /usr/include/c++/6/memory:81:0,
from prog.cpp:3:
/usr/include/c++/6/bits/unique_ptr.h:359:7: note: declared here
unique_ptr(const unique_ptr&) = delete;
^~~~~~~~~~