[sigc] function of const object as slot
- From: Roel Vanhout <roel riks nl>
- To: libsigc-list gnome org
- Subject: [sigc] function of const object as slot
- Date: Wed, 24 Aug 2005 12:36:54 +0200
Hi,
The program below doesn't compile (at least on MSVC, the error is:
Compiling...
constsigslot2.cpp
c:\Users\roel\ThirdParty\sigc++\object_slot.h(84) : error C2440: 
'initializing' : cannot convert from 'const Foo' to 'Foo &'
        Conversion loses qualifiers
        c:\test\constsigslot2\constsigslot2.cpp(25) : see reference to 
function template instantiation 'SigC::Slot0<R> 
SigC::slot<std::string,const Foo,Foo>(O1 &,R (__thiscall Foo::* )(void) 
const)' being compiled
        with
        [
            R=std::string,
            O1=const Foo
        ]
)
How can I connect to a slot of a const object? I've tried putting 
'const' just about everywhere I could imagine but no change apart from 
other error messages :) It compiles ok when I don't make the object 'f' 
const. Is it possible at all? Thanks.
cheers,
roel
#include <string>
#include <sigc++/sigc++.h>
class Foo : public SigC::Object
{
public:
	std::string Bar() const
	{
		return "Bleh";
	}
};
int main(int argc, char* argv[])
{
	const Foo f;
	SigC::Signal0<std::string> signal;
	signal.connect(SigC::slot<std::string>(f, &Foo::Bar));
	std::cout << signal() << std::endl;
	return 0;
}
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]