[Signals2] Compile error saying slot_type is not a type

View: New views
3 Messages — Rating Filter:   Alert me  

[Signals2] Compile error saying slot_type is not a type

by Marc DelaCruz :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all,
I'm new to boost and I get the following compile error:

~/FileDesc.h:254: error: `class boost::signals2::signal<void
()(ProcessKit::FileDescBase&, M&),
boost::signals2::optional_last_value<typename boost::function_traits<void
()(ProcessKit::FileDescBase&, M&)>::result_type>, int, std::less<int>,
boost::function<void ()(ProcessKit::FileDescBase&, M&)>, typename
boost::signals2::detail::extended_signature< boost::function_traits<void
()(ProcessKit::FileDescBase&, M&)>::arity, void
()(ProcessKit::FileDescBase&, M&)>::function_type,
boost::signals2::mutex>::slot_type' is not a type
~/FileDesc.h:255: error: ISO C++ forbids declaration of `rReadSlot' with no
type


I have code like the following:

template<typename M>
class FileDesc : public FileDescBase
{
    ...
    void setReadCallBack( boost::signals2::signal<void ( FileDescBase&, M&)
>::slot_type const&  rReadSlot)
    {
        ...
    }
    ...
    boost::signals2::signal<void ( FileDescBase&, M&) > mReadSignal;
};


I have a feeling it has to do with how/when the templates and the
metaprogramming stuff gets "unrolled/expanded" during compile time. However
I really don't understand the metaprogramming stuff yet.

Thanks.



_______________________________________________
Boost-users mailing list
Boost-users@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users

Re: [Signals2] Compile error saying slot_type is not a type

by Frank Mori Hess :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Monday 06 July 2009, Marc DelaCruz wrote:

> Hi all,
> I'm new to boost and I get the following compile error:
>
> ~/FileDesc.h:254: error: `class boost::signals2::signal<void
> ()(ProcessKit::FileDescBase&, M&),
> boost::signals2::optional_last_value<typename boost::function_traits<void
> ()(ProcessKit::FileDescBase&, M&)>::result_type>, int, std::less<int>,
> boost::function<void ()(ProcessKit::FileDescBase&, M&)>, typename
> boost::signals2::detail::extended_signature< boost::function_traits<void
> ()(ProcessKit::FileDescBase&, M&)>::arity, void
> ()(ProcessKit::FileDescBase&, M&)>::function_type,
> boost::signals2::mutex>::slot_type' is not a type
> ~/FileDesc.h:255: error: ISO C++ forbids declaration of `rReadSlot' with no
> type
>
>
> I have code like the following:
>
> template<typename M>
> class FileDesc : public FileDescBase
> {
>     ...
>     void setReadCallBack( boost::signals2::signal<void ( FileDescBase&, M&)
>
> >::slot_type const&  rReadSlot)


I think you're missing a 'typename' keyword:

void setReadCallBack(typename boost::signals2::signal<void ( FileDescBase&,
M&) >::slot_type const&  rReadSlot)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkpSQhYACgkQ5vihyNWuA4W75QCfcUCDAejoxlGFDkCJoAsoqOJj
UiYAn36HHhw5Tkg7X7Qls11/0C0xD9T6
=QrLT
-----END PGP SIGNATURE-----
_______________________________________________
Boost-users mailing list
Boost-users@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users

Re: [Signals2] Compile error saying slot_type is not a type

by Marc DelaCruz :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks.

I always miss the simple things...

----- Original Message -----
From: Frank Mori Hess
[mailto:frank.hess@...]
To: boost-users@...
[mailto:boost-users@...]
Sent: Mon, 06 Jul 2009 13:27:34
-0500
Subject: Re: [Boost-users] [Signals2] Compile error saying slot_type
is not a type


> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On Monday 06 July 2009, Marc DelaCruz wrote:
> > Hi all,
> > I'm new to boost and I get the following compile error:
> >
> > ~/FileDesc.h:254: error: `class boost::signals2::signal<void
> > ()(ProcessKit::FileDescBase&, M&),
> > boost::signals2::optional_last_value<typename boost::function_traits<void
> > ()(ProcessKit::FileDescBase&, M&)>::result_type>, int, std::less<int>,
> > boost::function<void ()(ProcessKit::FileDescBase&, M&)>, typename
> > boost::signals2::detail::extended_signature< boost::function_traits<void
> > ()(ProcessKit::FileDescBase&, M&)>::arity, void
> > ()(ProcessKit::FileDescBase&, M&)>::function_type,
> > boost::signals2::mutex>::slot_type' is not a type
> > ~/FileDesc.h:255: error: ISO C++ forbids declaration of `rReadSlot' with
> no
> > type
> >
> >
> > I have code like the following:
> >
> > template<typename M>
> > class FileDesc : public FileDescBase
> > {
> >     ...
> >     void setReadCallBack( boost::signals2::signal<void ( FileDescBase&,
> M&)
> >
> > >::slot_type const&  rReadSlot)
>
>
> I think you're missing a 'typename' keyword:
>
> void setReadCallBack(typename boost::signals2::signal<void ( FileDescBase&,
> M&) >::slot_type const&  rReadSlot)
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAkpSQhYACgkQ5vihyNWuA4W75QCfcUCDAejoxlGFDkCJoAsoqOJj
> UiYAn36HHhw5Tkg7X7Qls11/0C0xD9T6
> =QrLT
> -----END PGP SIGNATURE-----
> _______________________________________________
> Boost-users mailing list
> Boost-users@...
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
_______________________________________________
Boost-users mailing list
Boost-users@...
http://lists.boost.org/mailman/listinfo.cgi/boost-users