[signals2] analysing the signature
Hello, typedef signal<void (MyObject)> signal_type; Is there a way to get the type of the 1st argument, i.e. something that would return MyObject as a type. Thanks.
signal_type::arg<0>::type
Thanks. Originally I tried the following: #include <boost/signals2.hpp> #include <boost/typeof/typeof.hpp> int main() { boost::signals2::signal<void (int)> onEvent; typedef BOOST_TYPEOF(onEvent) OnEvent; typedef OnEvent::first_argument_type first; } And it doesn't compile (MSVC9.0) Note that if I add 1 argument, it does compile: //... boost::signals2::signal<void (int, int)> onEvent; typedef OnEvent::first_argument_type first;
On Monday 08 February 2010, Igor R wrote:
int main() {
boost::signals2::signal<void (int)> onEvent; typedef BOOST_TYPEOF(onEvent) OnEvent; typedef OnEvent::first_argument_type first; }
And it doesn't compile (MSVC9.0)
Note that if I add 1 argument, it does compile: //... boost::signals2::signal<void (int, int)> onEvent; typedef OnEvent::first_argument_type first;
first_argument_type/second_argument_type only exist for 2 argument signals. 1 argument signals just have argument_type. IIRC, thats how stuff in the functors in the STL look.
first_argument_type/second_argument_type only exist for 2 argument signals. 1 argument signals just have argument_type. IIRC, thats how stuff in the functors in the STL look.
Oh, I see. Actually, I missinterpreted its description - I thought that first_argument_type should exist if the signal has *at least* 1 argument. Thanks again.
participants (2)
-
Frank Mori Hess
-
Igor R