Hello, I'm new at TGUI, compiling tgui on my mac gave me this awful error from Callback.cpp:43 :
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/tuple:234:73: error:
no matching constructor for initialization of
'std::__1::reference_wrapper<tgui::Callback>'
_NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) : value()
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/tuple:447:23: note:
in instantiation of member function 'std::__1::__tuple_leaf<0,
std::__1::reference_wrapper<tgui::Callback>, false>::__tuple_leaf'
requested here
_LIBCPP_CONSTEXPR __tuple_impl()
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/tuple:550:23: note:
in instantiation of member function
'std::__1::__tuple_impl<std::__1::__tuple_indices<0>,
std::__1::reference_wrapper<tgui::Callback> >::__tuple_impl' requested
here
_LIBCPP_CONSTEXPR tuple()
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1744:11: note:
in instantiation of member function
'std::__1::tuple<std::__1::reference_wrapper<tgui::Callback> >::tuple'
requested here
__bound_args_(_VSTD::forward<_BA>(__bound_args)...) {}
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:2243:15: note:
in instantiation of function template specialization
'std::__1::__bind<std::__1::function<void (const tgui::Callback &)> &,
std::__1::reference_wrapper<tgui::Callback>
&>::__bind<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&>, , void>' requested here
__first_(_VSTD::forward<_Args1>(get<_I1>(__first_args))...)
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/memory:2421:15: note:
in instantiation of function template specialization
'std::__1::__libcpp_compressed_pair_imp<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&>, std::__1::allocator<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&> >,
2>::__libcpp_compressed_pair_imp<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&> &&, , 0, >' requested here
: base(__pc, _VSTD::move(__first_args), _VSTD::move(__second_args),
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:992:11: note:
in instantiation of function template specialization
'std::__1::__compressed_pair<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&>, std::__1::allocator<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&> > >::__compressed_pair<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&> &&, >' requested here
: __f_(piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__f)),
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1277:26: note:
in instantiation of member function
'std::__1::__function::__func<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&>, std::__1::allocator<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&> >, void ()>::__func' requested here
::new (__f_) _FF(_VSTD::move(__f));
^
/Users/tristansterin/Downloads/TGUI-0.6-RC - GCC 4.7 TDM (SJLJ) - 32 bits/src/TGUI/Callback.cpp:44:21: note:
in instantiation of function template specialization
'std::__1::function<void
()>::function<std::__1::__bind<std::__1::function<void
(const tgui::Callback &)> &, std::__1::reference_wrapper<tgui::Callback>
&> >' requested here
mapCallback(std::bind(func, a), trigger);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__functional_base:365:31: note:
candidate constructor not viable: requires single argument '__f', but no
arguments were provided
_LIBCPP_INLINE_VISIBILITY reference_wrapper(type& __f) _NOEXCEPT : _...
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__functional_base:367:14: note:
candidate constructor not viable: requires 1 argument, but 0 were provided
private: reference_wrapper(type&&); public: // = delete; // do not b...
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__functional_base:354:24: note:
candidate constructor (the implicit copy constructor) not viable: requires
1 argument, but 0 were provided
class _LIBCPP_TYPE_VIS reference_wrapper
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/__functional_base:354:24: note:
candidate constructor (the implicit move constructor) not viable: requires
1 argument, but 0 were provided
1 error generated.
This line was a problem :
mapCallback(std::bind(func, std::ref(m_Callback)), trigger);
I'm not good enough in cpp to understand the real problem, I got that the problem was from the std::ref, I did this (I'm sure it's wrong) :
mapCallback(std::bind(func, m_Callback), trigger);
And it all compile perfectly.
How this error could be well corrected ?