<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-1434</id>
	<title>Nabble - Gnome - Libsigc</title>
	<updated>2009-11-26T02:04:58Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Gnome---Libsigc-f1434.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Gnome---Libsigc-f1434.html" />
	<subtitle type="html">Mailing list for libsigc++</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26527037</id>
	<title>Re: Universal (fat) version of libsigc++ libraries</title>
	<published>2009-11-26T02:04:58Z</published>
	<updated>2009-11-26T02:04:58Z</updated>
	<author>
		<name>Régis Duchesne</name>
	</author>
	<content type="html">John,
&lt;br&gt;&lt;br&gt;I'm interested in that as well (VMware Fusion's UI uses libsigc++, and &amp;nbsp;
&lt;br&gt;I want to port it to 64-bit), so please let me know about your findings.
&lt;br&gt;&lt;br&gt;On Nov 26, 2009, at 1:01 AM, john blair wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I am trying to build libgigc++- on my mac 10.5.5. I want to build a &amp;nbsp;
&lt;br&gt;&amp;gt; universal binary so I am passing the following options to configure:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --disable-dependency-tracking \
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;CXXFLAGS=&amp;quot;-arch i386 -arch x86_64&amp;quot; \
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;CFLAGS=&amp;quot;-arch i386 -arch x86_64&amp;quot; \
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;LDFLAGS=&amp;quot;-arch i386 -arch x86_64&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; But this results in the following error:
&lt;br&gt;&amp;gt; ld warning: in ../sigc++/.libs/libsigc-2.0.dylib, file is not of &amp;nbsp;
&lt;br&gt;&amp;gt; required architecture
&lt;br&gt;&amp;gt; Undefined symbols for architecture x86_64:
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;quot;sigc::trackable::trackable()&amp;quot;, referenced from:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;sigc::internal::slot_rep::slot_rep(void* (*)(void*), void* (*) 
&lt;br&gt;&amp;gt; (void*), void* (*)(void*))in test_trackable.o
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;my_class::my_class()in test_trackable.o
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt; ld: symbol(s) not found for architecture x86_64
&lt;br&gt;&amp;gt; collect2: ld returned 1 exit status
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can someone suggest me a way to build a univeral libsigcc++?
&lt;/div&gt;&lt;br&gt;In many cases, I have found that packages are not well equipped to &amp;nbsp;
&lt;br&gt;deal with building multiple architectures in one invocation. What I &amp;nbsp;
&lt;br&gt;usually end up doing is:
&lt;br&gt;&lt;br&gt;1) Choose your installation directory, let's say foo.
&lt;br&gt;2) Build and install using -arch i386. _Move_ the install directory &amp;nbsp;
&lt;br&gt;from foo to foo.i386
&lt;br&gt;3) Build and install using -arch x86_64. _Copy_ the install directory &amp;nbsp;
&lt;br&gt;from foo to foo.x86_64
&lt;br&gt;4) Identify all the binaries inside foo (that is the only step where a &amp;nbsp;
&lt;br&gt;human is needed). For each binary identified,
&lt;br&gt;&amp;nbsp; &amp;nbsp; delete the (64-bit) binary,
&lt;br&gt;&amp;nbsp; &amp;nbsp; create the (fat) binary by invoking 'lipo' on the corresponding &amp;nbsp;
&lt;br&gt;binaries from foo.i386 (32-bit) and foo.x86_64 (64-bit)
&lt;br&gt;&lt;br&gt;The end result is that you end up with a working fat version of the &amp;nbsp;
&lt;br&gt;package, installed in foo. You can now delete foo.i386 and foo.x86_64.
&lt;br&gt;&lt;br&gt;I hope it helps,
&lt;br&gt;-- 
&lt;br&gt;hpreg
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26527037&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Universal-%28fat%29-version-of-libsigc%2B%2B-libraries-tp26522461p26527037.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26522461</id>
	<title>Universal (fat) version of libsigc++ libraries</title>
	<published>2009-11-25T16:01:08Z</published>
	<updated>2009-11-25T16:01:08Z</updated>
	<author>
		<name>blair_boost</name>
	</author>
	<content type="html">I am trying to build libgigc++- on my mac 10.5.5. I want to build a universal binary so I am passing the following options to configure:
&lt;br&gt;&lt;br&gt;--disable-dependency-tracking \
&lt;br&gt;&amp;nbsp; &amp;nbsp; CXXFLAGS=&amp;quot;-arch i386 -arch x86_64&amp;quot; \
&lt;br&gt;&amp;nbsp; &amp;nbsp; CFLAGS=&amp;quot;-arch i386 -arch x86_64&amp;quot; \
&lt;br&gt;&amp;nbsp; &amp;nbsp; LDFLAGS=&amp;quot;-arch i386 -arch x86_64&amp;quot;
&lt;br&gt;&lt;br&gt;But this results in the following error:
&lt;br&gt;ld warning: in ../sigc++/.libs/libsigc-2.0.dylib, file is not of required architecture
&lt;br&gt;Undefined symbols for architecture x86_64:
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::trackable::trackable()&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::internal::slot_rep::slot_rep(void* (*)(void*), void* (*)(void*), void* (*)(void*))in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; my_class::my_class()in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::slot_base::slot_base()&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::slot0&amp;lt;void&amp;gt;::slot0()in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::internal::slot_rep::notify(void*)&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::internal::slot_do_bind::operator()(sigc::trackable const*) constin test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::trackable::remove_destroy_notify_callback(void*) const&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::internal::slot_do_unbind::operator()(sigc::trackable const*) constin test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::slot_base::slot_base(sigc::internal::slot_rep*)&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::slot0&amp;lt;void&amp;gt;::slot0&amp;lt;sigc::bound_mem_functor0&amp;lt;void, my_class&amp;gt; &amp;gt;(sigc::bound_mem_functor0&amp;lt;void, my_class&amp;gt; const&amp;)in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::trackable::~trackable()&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::internal::slot_rep::~slot_rep()in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::internal::slot_rep::~slot_rep()in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; my_class::~my_class()in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::trackable::add_destroy_notify_callback(void*, void* (*)(void*)) const&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::internal::slot_do_bind::operator()(sigc::trackable const*) constin test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::slot_base::operator=(sigc::slot_base const&amp;)&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::slot0&amp;lt;void&amp;gt;::operator=(sigc::slot0&amp;lt;void&amp;gt; const&amp;)in test_trackable.o
&lt;br&gt;&amp;nbsp; &amp;quot;sigc::slot_base::~slot_base()&amp;quot;, referenced from:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sigc::slot0&amp;lt;void&amp;gt;::~slot0()in test_trackable.o
&lt;br&gt;ld: symbol(s) not found for architecture x86_64
&lt;br&gt;collect2: ld returned 1 exit status
&lt;br&gt;&lt;br&gt;&lt;br&gt;Can someone suggest me a way to build a univeral libsigcc++?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26522461&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Universal-%28fat%29-version-of-libsigc%2B%2B-libraries-tp26522461p26522461.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26832978</id>
	<title>User libsigc-list</title>
	<published>2009-11-22T06:05:38Z</published>
	<updated>2009-11-22T06:05:38Z</updated>
	<author>
		<name>Gnome - Libsigc mailing list</name>
	</author>
	<content type="html">I know all your habits
&lt;br&gt;&lt;a href=&quot;http://poind.by.ru/hot.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://poind.by.ru/hot.html&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832978&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/User-libsigc-list-tp26832978p26832978.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26170519</id>
	<title>Libsig 32 bits on Snow Leopard</title>
	<published>2009-11-01T15:56:16Z</published>
	<updated>2009-11-01T15:56:16Z</updated>
	<author>
		<name>Emilien G</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;

&lt;/head&gt;
&lt;body class='hmmessage'&gt;
Hello, &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; i've recently switched to snow leopard and i want to compile a leopard project that used libsig and a 32bits framework.&lt;br&gt;&amp;nbsp;&amp;nbsp; so, i want to compile libsig in 32 bits&lt;br&gt;&amp;nbsp;&amp;nbsp; Here is the entire command line i tried for it : &lt;br&gt;./configure CFLAGS='-arch i386' LDFLAGS='-arch i386' CC='gcc-4.0.1 -m32' CXX='g++-4.0.1 -m32' CHOST='i386-apple-darwin10.0.0' --target=i386-apple-darwin10.0.0 --build=i386-apple-darwin10.0.0 --host=i386-apple-darwin10.0.0&lt;br&gt;&amp;nbsp;&amp;nbsp; But i think it doesn't work because there are problems during the link (undefined references) and i have found these lines in the configure log &lt;br&gt;&amp;nbsp;&amp;nbsp; Target: i686-apple-darwin10&lt;br&gt;Configured with: /var/tmp/gcc/gcc-5646~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; So it apparently compiles in 64 bits...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Any ideas?&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thank u !&lt;br&gt;&lt;br&gt;Emilien&lt;br&gt;&lt;br&gt;&lt;br&gt; 		 	   		  &lt;br /&gt;&lt;hr /&gt;Nouveau! Découvrez le Windows phone Samsung Omnia II disponible chez SFR.  &lt;a href='http://clk.atdmt.com/FRM/go/175819072/direct/01/' target='_new' rel=&quot;nofollow&quot;&gt;Cliquez ici&lt;/a&gt;&lt;/body&gt;
&lt;/html&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26170519&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Libsig-32-bits-on-Snow-Leopard-tp26170519p26170519.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26069167</id>
	<title>CMake files for libsigc++2.0.18</title>
	<published>2009-10-26T15:49:06Z</published>
	<updated>2009-10-26T15:49:06Z</updated>
	<author>
		<name>R. Douglas Barbieri</name>
	</author>
	<content type="html">Hi all,
&lt;br&gt;&lt;br&gt;As Murray asked me to do, I have created a bug in the buzilla db for a
&lt;br&gt;feature request:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=599709&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://bugzilla.gnome.org/show_bug.cgi?id=599709&lt;/a&gt;&lt;br&gt;&lt;br&gt;The tarball for cmake files is attached. I hope I was thorough
&lt;br&gt;enough--please advise me if I goofed (this is my first time doing
&lt;br&gt;this). :-)
&lt;br&gt;-- 
&lt;br&gt;Doug Barbieri
&lt;br&gt;&lt;a href=&quot;http://www.slitechat.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.slitechat.org/&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26069167&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CMake-files-for-libsigc%2B%2B2.0.18-tp26069167p26069167.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25974800</id>
	<title>Re: Clarifying the behavior of sigc::slot_base::operator bool</title>
	<published>2009-10-20T06:09:16Z</published>
	<updated>2009-10-20T06:09:16Z</updated>
	<author>
		<name>Daniel Elstner</name>
	</author>
	<content type="html">Am Mittwoch, den 23.09.2009, 17:27 -0700 schrieb James Lin:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; What should the expected output be for:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;void bar(void) { }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;sigc::slot&amp;lt;void&amp;gt; foo = sigc::ptr_fun(&amp;bar);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;foo = sigc::slot&amp;lt;void&amp;gt;();
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;std::cout &amp;lt;&amp;lt; bool(foo) &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;This looks like a bug to me. &amp;nbsp;At least if
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;sigc::slot&amp;lt;void&amp;gt; foo;
&lt;br&gt;&amp;nbsp; &amp;nbsp;std::cout &amp;lt;&amp;lt; bool(foo) &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&lt;br&gt;outputs 0 instead.
&lt;br&gt;&lt;br&gt;--Daniel
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25974800&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Clarifying-the-behavior-of-sigc%3A%3Aslot_base%3A%3Aoperator-bool-tp25587405p25974800.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25904569</id>
	<title>Re: Libsigc++</title>
	<published>2009-10-15T01:14:51Z</published>
	<updated>2009-10-15T01:14:51Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Wed, 2009-10-14 at 12:26 -0700, Doug Barbieri wrote:
&lt;br&gt;&amp;gt; -----BEGIN PGP SIGNED MESSAGE-----
&lt;br&gt;&amp;gt; Hash: SHA1
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Hi Murray,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Is libsigc++ still live? I tried to get to the cvs but it does not work.
&lt;br&gt;&amp;gt; I noticed gnome moved to git, but I can't figure out how to access the
&lt;br&gt;&amp;gt; developer code.
&lt;br&gt;&lt;br&gt;It's the same as for any other GNOME module. Yes, I don't like git much
&lt;br&gt;either. But anyway:
&lt;br&gt;&lt;a href=&quot;http://live.gnome.org/Git/Developers&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://live.gnome.org/Git/Developers&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;gt; I just signed up to the libsigc++ mailing list
&lt;br&gt;&lt;br&gt;Please use that in future rather than emailing me directly.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp;and was looking to see if
&lt;br&gt;&amp;gt; there were any plans to port the library to using cmake. I require
&lt;br&gt;&amp;gt; porting to cmake for something my company is doing in house,
&lt;br&gt;&lt;br&gt;I am surprised that you need to do anything but ./configure;make all
&lt;br&gt;install, maybe with some configure options and/or standard build
&lt;br&gt;environment variables.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp;so I added
&lt;br&gt;&amp;gt; cmake support. So far I have everything except doc and tests. Would you
&lt;br&gt;&amp;gt; be interested in my CMakeLists.txt files? I would gladly send them to
&lt;br&gt;&amp;gt; you if you would like to incorporate them into your project.
&lt;br&gt;&lt;br&gt;I guess it wouldn't do any harm to add it to git, and maybe to dist it
&lt;br&gt;in the tarball.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The really nice thing about having your project using CMake (apart from
&lt;br&gt;&amp;gt; the fact that it's much easier in my opinion to maintain as opposed to
&lt;br&gt;&amp;gt; dealing with autoconf/make) is that you won't have to maintain the win32
&lt;br&gt;&amp;gt; projects/solution file you ship with the product since CMake will
&lt;br&gt;&amp;gt; generate those for you on the win32 platform. &amp;nbsp;You can also use CPack to
&lt;br&gt;&amp;gt; generate win32 installers (as well as debian packages and good ole
&lt;br&gt;&amp;gt; tar.gz distributions). I don't have the cpack specs in yet, but I would
&lt;br&gt;&amp;gt; be glad to do that for you if you wish.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Take care, and thanks for such a great library! I use it a lot!
&lt;br&gt;&amp;gt; - --
&lt;br&gt;&amp;gt; R. Douglas Barbieri
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25904569&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;doug@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.dooglio.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.dooglio.net/&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://audio.dooglio.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://audio.dooglio.net/&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.slitechat.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.slitechat.org/&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.turnwatcher.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.turnwatcher.com/&lt;/a&gt;&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.m2osw.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.m2osw.com/&lt;/a&gt;&lt;br&gt;&amp;gt; -----BEGIN PGP SIGNATURE-----
&lt;br&gt;&amp;gt; Version: GnuPG v1.4.9 (GNU/Linux)
&lt;br&gt;&amp;gt; Comment: Using GnuPG with Mozilla - &lt;a href=&quot;http://enigmail.mozdev.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://enigmail.mozdev.org&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; iEYEARECAAYFAkrWJfQACgkQ0cK9SChClz88WQCffv6gqWkcEjM0jFVaRSBj9lVM
&lt;br&gt;&amp;gt; 6FgAnR9WLFU4IJ87yO7zsqpcU9Xknw9M
&lt;br&gt;&amp;gt; =EZh3
&lt;br&gt;&amp;gt; -----END PGP SIGNATURE-----
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25904569&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25904569&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Libsigc%2B%2B-tp25904569p25904569.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25587405</id>
	<title>Clarifying the behavior of sigc::slot_base::operator bool</title>
	<published>2009-09-23T17:27:14Z</published>
	<updated>2009-09-23T17:27:14Z</updated>
	<author>
		<name>James Lin-2</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;What should the expected output be for:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;void bar(void) { }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;sigc::slot&amp;lt;void&amp;gt; foo = sigc::ptr_fun(&amp;bar);
&lt;br&gt;&amp;nbsp; &amp;nbsp;foo = sigc::slot&amp;lt;void&amp;gt;();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;std::cout &amp;lt;&amp;lt; bool(foo) &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&lt;br&gt;?
&lt;br&gt;&lt;br&gt;I get &amp;quot;1&amp;quot; (using MSVC 2008 with libsigc++ 2.2.4.2), which surprised me. &amp;nbsp;sigc::slot_base::empty() also returns true in this case. &amp;nbsp;Is this subtle distinction intentional? &amp;nbsp;The documentation for operator bool says:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;quot;Tests whether a slot is null, because the default constructor was used.&amp;quot;
&lt;br&gt;&lt;br&gt;On one hand, I didn't initialize the slot with the default constructor (although I did assign over it with a default-constructed slot). &amp;nbsp;On the other hand, I think it qualifies as a &amp;quot;null slot&amp;quot;.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;- James
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25587405&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Clarifying-the-behavior-of-sigc%3A%3Aslot_base%3A%3Aoperator-bool-tp25587405p25587405.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25260555</id>
	<title>libsigc++ 2.2.4.2 released</title>
	<published>2009-09-02T09:04:31Z</published>
	<updated>2009-09-02T09:04:31Z</updated>
	<author>
		<name>Daniel Elstner</name>
	</author>
	<content type="html">libsigc++ 2.2.4.2 is now available for download at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://download.gnome.org/sources/libsigc++/2.2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://download.gnome.org/sources/libsigc++/2.2/&lt;/a&gt;&lt;br&gt;&lt;br&gt;SHA256 sums:
&lt;br&gt;998e4af392090a0db15102ba0f753fc6fc636574956c8292eb615a2a7823e201 &amp;nbsp;libsigc++-2.2.4.2.tar.bz2
&lt;br&gt;bc1cd78f15e455b5e56c99ad26eb9bedec6f00a1406b8ff6f1d5531253206bcb &amp;nbsp;libsigc++-2.2.4.2.tar.gz
&lt;br&gt;&lt;br&gt;&lt;br&gt;Changes
&lt;br&gt;=======
&lt;br&gt;&lt;br&gt;* Namespace sigc is now documented, in order to make large chunks of the
&lt;br&gt;&amp;nbsp; reference documentation reappear. &amp;nbsp;(Daniel Elstner)
&lt;br&gt;&lt;br&gt;* The shipped reference documentation has been regenerated using Doxygen
&lt;br&gt;&amp;nbsp; 1.6.1, so that the document type is now XHTML 1.0. &amp;nbsp;(Daniel Elstner)
&lt;br&gt;&lt;br&gt;* The shipped Devhelp file has been generated with a newer version of the
&lt;br&gt;&amp;nbsp; XSLT script in mm-common, so that documentation groups no longer appear
&lt;br&gt;&amp;nbsp; as namespace prefixes in the keyword list. &amp;nbsp;(Daniel Elstner)
&lt;br&gt;&lt;br&gt;&lt;br&gt;About libsigc++
&lt;br&gt;===============
&lt;br&gt;&lt;br&gt;libsigc++ implements a typesafe callback system for standard C++. It
&lt;br&gt;allows you to define signals and to connect those signals to any
&lt;br&gt;callback function, either global or a member function, regardless of
&lt;br&gt;whether it is static or virtual.
&lt;br&gt;&lt;br&gt;libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not
&lt;br&gt;depend on GTK or gtkmm.
&lt;br&gt;&lt;br&gt;More information about libsigc++ is available at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://libsigc.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://libsigc.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;September 2, 2009
&lt;br&gt;Daniel Elstner
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25260555&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libsigc%2B%2B-2.2.4.2-released-tp25260555p25260555.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25192570</id>
	<title>libsigc++ 2.2.4.1 released</title>
	<published>2009-08-28T09:04:30Z</published>
	<updated>2009-08-28T09:04:30Z</updated>
	<author>
		<name>Daniel Elstner</name>
	</author>
	<content type="html">libsigc++ 2.2.4.1 is now available for download at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://download.gnome.org/sources/libsigc++/2.2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://download.gnome.org/sources/libsigc++/2.2/&lt;/a&gt;&lt;br&gt;&lt;br&gt;MD5 sums:
&lt;br&gt;33efb48e92dae0a56bcfaebc39b250e8 &amp;nbsp;libsigc++-2.2.4.1.tar.bz2
&lt;br&gt;e58adf509a2373778105a67f6f58920c &amp;nbsp;libsigc++-2.2.4.1.tar.gz
&lt;br&gt;&lt;br&gt;SHA1 sums:
&lt;br&gt;4dd9a0d42f390562f27f6650942d2cd929ac3176 &amp;nbsp;libsigc++-2.2.4.1.tar.bz2
&lt;br&gt;beea482a7bacebf7d0a189320db6d1c932321cd0 &amp;nbsp;libsigc++-2.2.4.1.tar.gz
&lt;br&gt;&lt;br&gt;&lt;br&gt;* Reenable the per-class hierarchy graphs in the reference documentation.
&lt;br&gt;&amp;nbsp; (Daniel Elstner)
&lt;br&gt;* Drop the custom HTML header and footer, and use the shared doxygen.css
&lt;br&gt;&amp;nbsp; file from mm-common. (Daniel Elstner)
&lt;br&gt;&lt;br&gt;&lt;br&gt;About libsigc++
&lt;br&gt;===============
&lt;br&gt;&lt;br&gt;libsigc++ implements a typesafe callback system for standard C++. It
&lt;br&gt;allows you to define signals and to connect those signals to any
&lt;br&gt;callback function, either global or a member function, regardless of
&lt;br&gt;whether it is static or virtual.
&lt;br&gt;&lt;br&gt;libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not
&lt;br&gt;depend on GTK or gtkmm.
&lt;br&gt;&lt;br&gt;More information about libsigc++ is available at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://libsigc.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://libsigc.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;August 28, 2009
&lt;br&gt;Daniel Elstner
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25192570&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libsigc%2B%2B-2.2.4.1-released-tp25192570p25192570.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25136497</id>
	<title>libsigc++ 2.2.4 released</title>
	<published>2009-08-25T08:21:46Z</published>
	<updated>2009-08-25T08:21:46Z</updated>
	<author>
		<name>Daniel Elstner</name>
	</author>
	<content type="html">libsigc++ 2.2.4 is now available for download at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://download.gnome.org/sources/libsigc++/2.2/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://download.gnome.org/sources/libsigc++/2.2/&lt;/a&gt;&lt;br&gt;&lt;br&gt;MD5 sums:
&lt;br&gt;c7d96da4b144a80fb7ea441e4819da82 &amp;nbsp;libsigc++-2.2.4.tar.bz2
&lt;br&gt;ce1b3a304b92f1b3cd63a31b51cdcabe &amp;nbsp;libsigc++-2.2.4.tar.gz
&lt;br&gt;&lt;br&gt;SHA1 sums:
&lt;br&gt;b9c47560c34e0ec99df3bc56f2bccda8c0408883 &amp;nbsp;libsigc++-2.2.4.tar.bz2
&lt;br&gt;22b5e8087a9f858c717c5db6508de3036117ad16 &amp;nbsp;libsigc++-2.2.4.tar.gz
&lt;br&gt;&lt;br&gt;&lt;br&gt;* New build system based on mm-common. The mm-common module is now
&lt;br&gt;&amp;nbsp; required for building from the git repository, but not for builds
&lt;br&gt;&amp;nbsp; of release archives. (Daniel Elstner)
&lt;br&gt;* The public reference documentation is now hosted on library.gnome.org.
&lt;br&gt;&amp;nbsp; (Frederic Peters, Daniel Elstner)
&lt;br&gt;&lt;br&gt;&lt;br&gt;About libsigc++
&lt;br&gt;===============
&lt;br&gt;&lt;br&gt;libsigc++ implements a typesafe callback system for standard C++. It
&lt;br&gt;allows you to define signals and to connect those signals to any
&lt;br&gt;callback function, either global or a member function, regardless of
&lt;br&gt;whether it is static or virtual.
&lt;br&gt;&lt;br&gt;libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not
&lt;br&gt;depend on GTK or gtkmm.
&lt;br&gt;&lt;br&gt;More information about libsigc++ is available at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://libsigc.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://libsigc.sourceforge.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;August 25, 2009
&lt;br&gt;Daniel Elstner
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25136497&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/libsigc%2B%2B-2.2.4-released-tp25136497p25136497.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24137486</id>
	<title>need help with lambda object</title>
	<published>2009-06-21T11:44:22Z</published>
	<updated>2009-06-21T11:44:22Z</updated>
	<author>
		<name>Ofer Oshri-2</name>
	</author>
	<content type="html">&lt;br&gt;hi,
&lt;br&gt;i need to add 2 integers through a lambda object. &amp;nbsp;the first integer parameter comes from the input. &amp;nbsp;the second one comes from a function that takes no parameter and return integer. &amp;nbsp;the only solution i could think of is as follows:
&lt;br&gt;&lt;br&gt;//////////////////////////////////////////////////////////////////
&lt;br&gt;#include &amp;lt;iostream&amp;gt;
&lt;br&gt;#include &amp;lt;sigc++.h&amp;gt;
&lt;br&gt;&lt;br&gt;int f() { return 8; }
&lt;br&gt;int g(int a, int b) { return a + b; }
&lt;br&gt;&lt;br&gt;int main()
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;std::cerr &amp;lt;&amp;lt; &amp;quot;y=&amp;quot; &amp;lt;&amp;lt; sigc::bind&amp;lt;-1&amp;gt;(sigc::group((sigc::_1 + sigc::_2),sigc::_1, sigc::group(sigc::hide&amp;lt;0&amp;gt;(sigc::ptr_fun(&amp;f)), sigc::_2)), 0)(1) &amp;lt;&amp;lt; std::endl;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;my problem with the above solution is that i have to pass and hide sigc::_2 from f() and to use bind for the redundant input parameter. &amp;nbsp;is there a better solution?
&lt;br&gt;thanks in advance,
&lt;br&gt;ofer
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24137486&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/need-help-with-lambda-object-tp24137486p24137486.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23602017</id>
	<title>Re: Compile error: invalid initialization of non-const reference of type ‘some_slot&amp;’ from a temporary of type ...</title>
	<published>2009-05-18T10:29:39Z</published>
	<updated>2009-05-18T10:29:39Z</updated>
	<author>
		<name>Peter Basista</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;

&lt;/head&gt;
&lt;body class='hmmessage'&gt;
I am sorry for the previous empty message, I pressed the wrong button ...&lt;br&gt;-----------------------------------------------------------------------&lt;br&gt;&lt;br&gt;James Lin wrote:&lt;br&gt;&amp;gt; C++ does not allow anonymous objects to be passed where non-const references are expected. Specifically, non-const references must be lvalues.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; http://groups.google.com/group/comp.lang.c++/browse_thread/thread/814a071947c5b675/be95a615245cdbdf?#be95a615245cdbdf&lt;br&gt;&lt;br&gt;Well, I hope I see what you mean. I was not aware of this. After I corrected the definition of bar and added const:&lt;br&gt;&lt;br&gt;int bar (const gslot &amp;amp; gs)&lt;br&gt;&lt;br&gt;The code compiled without problems.&lt;br&gt;&lt;br&gt;Thank you very much, James!&lt;br&gt;&lt;br /&gt;&lt;hr /&gt;See all the ways you can stay connected &lt;a href='http://www.microsoft.com/windows/windowslive/default.aspx' target='_new' rel=&quot;nofollow&quot;&gt;to friends and family&lt;/a&gt;&lt;/body&gt;
&lt;/html&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23602017&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Compile-error%3A-invalid-initialization-of-non-const-reference-of-type-%E2%80%98some_slot-%E2%80%99-from-a-temporary-of-type-...-tp23597401p23602017.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23601942</id>
	<title>Re: Compile error: invalid initialization of non-const reference of type ‘some_slot&amp;’ from a temporary of type ...</title>
	<published>2009-05-18T10:25:42Z</published>
	<updated>2009-05-18T10:25:42Z</updated>
	<author>
		<name>Peter Basista</name>
	</author>
	<content type="html">&lt;br&gt;&lt;br&gt;_________________________________________________________________
&lt;br&gt;Windows Live™: Keep your life in sync. Check it out!
&lt;br&gt;&lt;a href=&quot;http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_012009&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_012009&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23601942&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Compile-error%3A-invalid-initialization-of-non-const-reference-of-type-%E2%80%98some_slot-%E2%80%99-from-a-temporary-of-type-...-tp23597401p23601942.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23597612</id>
	<title>Re: Compile error: invalid initialization of non-const reference of type ‘some_slot&amp;’ from a temporary of type ...</title>
	<published>2009-05-18T06:41:14Z</published>
	<updated>2009-05-18T06:41:14Z</updated>
	<author>
		<name>James Lin-2</name>
	</author>
	<content type="html">Peter Basista wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; int bar (gslot &amp; gs) { // The argument is a reference
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Executing bar.&amp;quot; &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gs(0, 1.0, 'c', &amp;quot;hello&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return (0);
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; [...]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bar(sigc::hide(sigc::mem_fun(ec, &amp;ExampleClass::f))); 
&lt;br&gt;&amp;gt; // &amp;lt;-- COMPILE ERROR
&lt;/div&gt;&lt;br&gt;C++ does not allow anonymous objects to be passed where non-const references are expected. &amp;nbsp;Specifically, non-const references must be lvalues.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://groups.google.com/group/comp.lang.c++/browse_thread/thread/814a071947c5b675/be95a615245cdbdf?#be95a615245cdbdf&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/comp.lang.c++/browse_thread/thread/814a071947c5b675/be95a615245cdbdf?#be95a615245cdbdf&lt;/a&gt;&lt;br&gt;&lt;br&gt;- James
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23597612&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Compile-error%3A-invalid-initialization-of-non-const-reference-of-type-%E2%80%98some_slot-%E2%80%99-from-a-temporary-of-type-...-tp23597401p23597612.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23597401</id>
	<title>Compile error: invalid initialization of non-const reference of type ‘some_slot&amp;’ from a temporary of type ...</title>
	<published>2009-05-18T06:26:38Z</published>
	<updated>2009-05-18T06:26:38Z</updated>
	<author>
		<name>Peter Basista</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;

&lt;/head&gt;
&lt;body class='hmmessage'&gt;
Hello,&lt;br&gt;&lt;br&gt;I am having problem with compilation of the following code:&lt;br&gt;&lt;br&gt;class ExampleClass {&lt;br&gt;public:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int f (int i, double d, char c);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int g (int i, double d, char c, char * s);&lt;br&gt;};&lt;br&gt;&lt;br&gt;int ExampleClass::f (int i, double d, char c) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout &amp;lt;&amp;lt; &quot;Executing ExampleClass::f.&quot; &amp;lt;&amp;lt; std::endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (0);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int ExampleClass::g (int i, double d, char c, char * s) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout &amp;lt;&amp;lt; &quot;Executing ExampleClass::g.&quot; &amp;lt;&amp;lt; std::endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (0);&lt;br&gt;}&lt;br&gt;&lt;br&gt;typedef sigc::slot&amp;lt;int, int, double, char, char *&amp;gt; gslot;&lt;br&gt;&lt;br&gt;int bar (gslot &amp;amp; gs) { // The argument is a reference&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout &amp;lt;&amp;lt; &quot;Executing bar.&quot; &amp;lt;&amp;lt; std::endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gs(0, 1.0, 'c', &quot;hello&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (0);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int bar2 (gslot gs) { // The reference is missing here&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout &amp;lt;&amp;lt; &quot;Executing bar2.&quot; &amp;lt;&amp;lt; std::endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gs(0, 1.0, 'c', &quot;hello&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (0);&lt;br&gt;}&lt;br&gt;&lt;br&gt;int foo () {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExampleClass ec;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gslot intermediate = sigc::hide(sigc::mem_fun(ec, &amp;amp;ExampleClass::f));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bar(intermediate); // works&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bar(sigc::hide(sigc::mem_fun(ec, &amp;amp;ExampleClass::f))); // &amp;lt;-- COMPILE ERROR&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bar2(sigc::hide(sigc::mem_fun(ec, &amp;amp;ExampleClass::f))); // works&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (0);&lt;br&gt;}&lt;br&gt;&lt;br&gt;On my system with:&lt;br&gt;&lt;br&gt;gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.3)&lt;br&gt;sigc++-2.0 version 2.2.3&lt;br&gt;&lt;br&gt;I get this compile error:&lt;br&gt;&lt;br&gt;error: invalid initialization of non-const reference of type ‘gslot&amp;amp;’ from a temporary of type ‘sigc::hide_functor&amp;lt;-0x00000000000000001, sigc::bound_mem_functor3&amp;lt;int, ExampleClass, int, double, char&amp;gt; &amp;gt;’&lt;br&gt;error: in passing argument 1 of ‘int bar(gslot&amp;amp;)’&lt;br&gt;&lt;br&gt;This is interesting, because when I use an intermediate variable of the type sigc::slot to which I at first assign the created functor, then the parameter is passed successfully. Also, when I use a function (bar2) which is not taking a reference to sigc::slot, but just a sigc::slot as a parameter, then I am able to call it with the created functor directly.&lt;br&gt;&lt;br&gt;I don't really understand this behaviour. What is the difference between calls to bar and bar2? Why is it not possible to initialize a parameter of type 'reference to sigc::slot' with a functor returned by sigc::hide directly? Why it is necessary to use intermediate sigc::slot? Should not be such a conversion automatic?&lt;br&gt;&lt;br&gt;Thank you very much!&lt;br&gt;&lt;br /&gt;&lt;hr /&gt;What can you do with the new Windows Live? &lt;a href='http://www.microsoft.com/windows/windowslive/default.aspx' target='_new' rel=&quot;nofollow&quot;&gt;Find out&lt;/a&gt;&lt;/body&gt;
&lt;/html&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23597401&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Compile-error%3A-invalid-initialization-of-non-const-reference-of-type-%E2%80%98some_slot-%E2%80%99-from-a-temporary-of-type-...-tp23597401p23597401.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22520004</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-14T21:09:15Z</published>
	<updated>2009-03-14T21:09:15Z</updated>
	<author>
		<name>Konstantin L Kouptsov</name>
	</author>
	<content type="html">zdenek.macura wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Dear Developers,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I compile inkscape software on OpenSolaris and when I run make I get the following issues:
&lt;br&gt;&amp;gt; for instance:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; /usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;&amp;gt; /usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: expected `(' before '&amp;gt;' token
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I use g++ compiler.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Could you please give me a tip how I could resolve the issue ?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks a lot
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Zdenek
&lt;/div&gt;&lt;br&gt;&lt;br&gt;Zdenek,
&lt;br&gt;&lt;br&gt;Were you able to figure out the problem?
&lt;br&gt;&lt;br&gt;I suspect that the problem is with #ifdef statements in the headers that 
&lt;br&gt;are not properly set up for your platform, or a missing #include.
&lt;br&gt;&lt;br&gt;Look what is written just before &amp;gt; on line slot.h:136. The definition of 
&lt;br&gt;that identifier is likely in the header file with incorrect (#ifdef)s, 
&lt;br&gt;or in the file which was not included, and the error propagates to slot.h.
&lt;br&gt;&lt;br&gt;I can simulate a similar error using a different code. Simply commenting 
&lt;br&gt;out a certain #include statement gives me a similar error.
&lt;br&gt;&lt;br&gt;[Sorry, I don't have the exact code you are trying to compile, so this 
&lt;br&gt;is just a guess]
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Konstantin
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22520004&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22520004.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22473427</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-12T03:27:53Z</published>
	<updated>2009-03-12T03:27:53Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Thu, 2009-03-12 at 00:01 +0100, zdenek.macura wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Please answer this question too:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt; And it would be interesting to know if the libsigc++ tests build for
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt; you, when building the libsigc++ tarball (though you are hopefully using
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; &amp;gt; an OpenSolaris libsigc++ package).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I use libsigc++ which was already installed on the system I'm using
&lt;br&gt;&amp;gt; and I don't know how libsigc++ was built.
&lt;br&gt;&lt;br&gt;Neither do I, but maybe you could find out. Is it likely to have used
&lt;br&gt;the same compiler that you are using?
&lt;br&gt;&lt;br&gt;&amp;gt; Would you recommend to build libsigc++ with g++ first and try again ?
&lt;br&gt;&lt;br&gt;I would just like you to try to build the libsigc++ tarball (don't
&lt;br&gt;install it). The result would be informative.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; But I still think that all what is used are just the header files, which
&lt;br&gt;&amp;gt; don't have nothing to do with building. Am I correct ?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; BTW: When I try to build Inkscape on Linux, it works without any problem.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks a lot
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Zdenek
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Also, you said you are using g++, but were the opensolaris packages
&lt;br&gt;&amp;gt; &amp;gt; built with g++, and with the same version of g++?
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; -- 
&lt;br&gt;&amp;gt; &amp;gt; Murray Cumming
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22473427&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt; www.murrayc.com
&lt;br&gt;&amp;gt; &amp;gt; www.openismus.com
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; libsigc-list mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22473427&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;/div&gt;-- 
&lt;br&gt;Murray Cumming
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22473427&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22473427&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22473427.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22466463</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-11T16:01:33Z</published>
	<updated>2009-03-11T16:01:33Z</updated>
	<author>
		<name>zdenek.macura</name>
	</author>
	<content type="html">Hi Murray,
&lt;br&gt;&lt;br&gt;Please see my comment below:
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ------------ Původní zpráva ------------
&lt;br&gt;&amp;gt; Od: Murray Cumming &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22466463&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Předmět: Re: [sigc] Problem when compiling inskscape on OpenSolaris
&lt;br&gt;&amp;gt; Datum: 08.3.2009 12:05:58
&lt;br&gt;&amp;gt; ----------------------------------------
&lt;br&gt;&amp;gt; On Sun, 2009-03-08 at 12:02 +0100, Murray Cumming wrote:
&lt;br&gt;&amp;gt; &amp;gt; On Sat, 2009-03-07 at 23:50 +0100, zdenek.macura wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Hi Murray,
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Thanks a lot for your reply.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I use an OpenSolaris libsigc++ package.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I attach the whole output from running the make command.
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Please let me know what you think about it.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Please answer this question too:
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; And it would be interesting to know if the libsigc++ tests build for
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; you, when building the libsigc++ tarball (though you are hopefully using
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;gt; an OpenSolaris libsigc++ package).
&lt;/div&gt;&lt;br&gt;I use libsigc++ which was already installed on the system I'm using
&lt;br&gt;and I don't know how libsigc++ was built.
&lt;br&gt;Would you recommend to build libsigc++ with g++ first and try again ?
&lt;br&gt;But I still think that all what is used are just the header files, which
&lt;br&gt;don't have nothing to do with building. Am I correct ?
&lt;br&gt;&lt;br&gt;BTW: When I try to build Inkscape on Linux, it works without any problem.
&lt;br&gt;&lt;br&gt;Thanks a lot
&lt;br&gt;&lt;br&gt;Zdenek
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Also, you said you are using g++, but were the opensolaris packages
&lt;br&gt;&amp;gt; built with g++, and with the same version of g++?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Murray Cumming
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22466463&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;&amp;gt; www.murrayc.com
&lt;br&gt;&amp;gt; www.openismus.com
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22466463&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22466463.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22396780</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-08T04:05:52Z</published>
	<updated>2009-03-08T04:05:52Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Sun, 2009-03-08 at 12:02 +0100, Murray Cumming wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Sat, 2009-03-07 at 23:50 +0100, zdenek.macura wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi Murray,
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Thanks a lot for your reply.
&lt;br&gt;&amp;gt; &amp;gt; I use an OpenSolaris libsigc++ package.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I attach the whole output from running the make command.
&lt;br&gt;&amp;gt; &amp;gt; Please let me know what you think about it.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Please answer this question too:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; And it would be interesting to know if the libsigc++ tests build for
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; you, when building the libsigc++ tarball (though you are hopefully using
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; an OpenSolaris libsigc++ package).
&lt;/div&gt;&lt;br&gt;Also, you said you are using g++, but were the opensolaris packages
&lt;br&gt;built with g++, and with the same version of g++?
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Murray Cumming
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22396780&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22396780&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22396780.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22396747</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-08T04:02:13Z</published>
	<updated>2009-03-08T04:02:13Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Sat, 2009-03-07 at 23:50 +0100, zdenek.macura wrote:
&lt;br&gt;&amp;gt; Hi Murray,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks a lot for your reply.
&lt;br&gt;&amp;gt; I use an OpenSolaris libsigc++ package.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I attach the whole output from running the make command.
&lt;br&gt;&amp;gt; Please let me know what you think about it.
&lt;br&gt;&lt;br&gt;Please answer this question too:
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt; And it would be interesting to know if the libsigc++ tests build for
&lt;br&gt;&amp;gt; &amp;gt; you, when building the libsigc++ tarball (though you are hopefully using
&lt;br&gt;&amp;gt; &amp;gt; an OpenSolaris libsigc++ package).
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Murray Cumming
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22396747&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22396747&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22396747.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22392846</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-07T14:58:31Z</published>
	<updated>2009-03-07T14:58:31Z</updated>
	<author>
		<name>zdenek.macura</name>
	</author>
	<content type="html">Hi Murray,
&lt;br&gt;&lt;br&gt;Thanks a lot for your reply.
&lt;br&gt;I use an OpenSolaris libsigc++ package.
&lt;br&gt;&lt;br&gt;I attach the whole output from running the make command.
&lt;br&gt;Please let me know what you think about it.
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;Zdenek
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ------------ Původní zpráva ------------
&lt;br&gt;&amp;gt; Od: Murray Cumming &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22392846&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Předmět: Re: [sigc] Problem when compiling inskscape on OpenSolaris
&lt;br&gt;&amp;gt; Datum: 07.3.2009 18:55:39
&lt;br&gt;&amp;gt; ----------------------------------------
&lt;br&gt;&amp;gt; On Sat, 2009-03-07 at 13:49 +0100, zdenek.macura wrote:
&lt;br&gt;&amp;gt; &amp;gt; Dear Developers,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I compile inkscape software on OpenSolaris and when I run make I get the
&lt;br&gt;&amp;gt; following issues:
&lt;br&gt;&amp;gt; &amp;gt; for instance:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; /usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function
&lt;br&gt;&amp;gt; `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return,
&lt;br&gt;&amp;gt; T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename
&lt;br&gt;&amp;gt; sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;&amp;gt; &amp;gt; /usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: expected `(' before
&lt;br&gt;&amp;gt; '&amp;gt;' token
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I use g++ compiler.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Could you please give me a tip how I could resolve the issue ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We might be able to figure it out if we see the whole compiler error.
&lt;br&gt;&amp;gt; And it would be interesting to know if the libsigc++ tests build for
&lt;br&gt;&amp;gt; you, when building the libsigc++ tarball (though you are hopefully using
&lt;br&gt;&amp;gt; an OpenSolaris libsigc++ package).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; But this is probably something that you should ask the Inkscape
&lt;br&gt;&amp;gt; developers about.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Murray Cumming
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22392846&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;&amp;gt; www.murrayc.com
&lt;br&gt;&amp;gt; www.openismus.com
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&lt;/div&gt;&lt;/div&gt;make &amp;nbsp;all-recursive
&lt;br&gt;make[1]: Entering directory `/export/home/zdenek/test3/inkscape-0.46'
&lt;br&gt;Making all in src
&lt;br&gt;make[2]: Entering directory `/export/home/zdenek/test3/inkscape-0.46/src'
&lt;br&gt;depbase=`echo arc-context.o | sed 's|[^/]*$|.deps/&amp;|;s|\.o$||'`;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; g++ -DHAVE_CONFIG_H -I. -I.. &amp;nbsp; -I/usr/include/freetype2 &amp;nbsp;-D_REENTRANT -D_PTHREADS -DORBIT2=1 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include &amp;nbsp; &amp;nbsp; -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/usr/X11/include -I/usr/include/freetype2 &amp;nbsp; -I/usr/include/poppler &amp;nbsp; -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -I/usr/include/poppler/glib -I/usr/include/poppler -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/X11/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 &amp;nbsp; -DPOTRACE=\&amp;quot;potrace\&amp;quot; -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_PTHREADS -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/gtk-2.0 
&lt;br&gt;&amp;nbsp;-I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/X11/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/atkmm-1.6 -I/usr/include/atk-1.0 -I/usr/include/libxml2 -I/usr/include/gtkspell-2.0 &amp;nbsp; -I../cxxtest &amp;nbsp; &amp;nbsp;-Wall -Wformat-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -D_FORTIFY_SOURCE=2 -Wno-unused-parameter -g -O2 -MT arc-context.o -MD -MP -MF $depbase.Tpo -c -o arc-context.o arc-context.cpp &amp;&amp;\
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mv -f $depbase.Tpo $depbase.Po
&lt;br&gt;In file included from /usr/include/sigc++-2.0/sigc++/signal_base.h:28,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from /usr/include/sigc++-2.0/sigc++/signal.h:8,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from /usr/include/sigc++-2.0/sigc++/connection.h:22,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-object.h:61,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-item.h:23,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-shape.h:18,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-ellipse.h:18,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from arc-context.cpp:27:
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call2&amp;lt;T_functor, T_return, T_arg1, T_arg2&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:172: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:172: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call3&amp;lt;T_functor, T_return, T_arg1, T_arg2, T_arg3&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:210: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:210: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:210: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call4&amp;lt;T_functor, T_return, T_arg1, T_arg2, T_arg3, T_arg4&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:250: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:250: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:250: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:250: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call5&amp;lt;T_functor, T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:292: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:292: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:292: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:292: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:292: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call6&amp;lt;T_functor, T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:336: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:336: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:336: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:336: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:336: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:336: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call7&amp;lt;T_functor, T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:382: error: expected `(' before '&amp;gt;' token
&lt;br&gt;In file included from /usr/include/sigc++-2.0/sigc++/connection.h:22,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-object.h:61,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-item.h:23,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-shape.h:18,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from sp-ellipse.h:18,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from arc-context.cpp:27:
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: At global scope:
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:182: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:182: error: ISO C++ forbids declaration of `reverse_iterator' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:185: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:185: error: ISO C++ forbids declaration of `const_reverse_iterator' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit0&amp;lt;T_return, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:720: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:720: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:726: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:726: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:731: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:731: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:734: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:734: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:736: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:736: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit0&amp;lt;void, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:790: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:790: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:792: error: `struct std::_List_iterator&amp;lt;sigc::slot_base&amp;gt;' used where a `sigc::internal::signal_emit0&amp;lt;void,sigc::nil&amp;gt;::emit_reverse::reverse_iterator_type' was expected
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:792: error: `struct std::_List_iterator&amp;lt;sigc::slot_base&amp;gt;' used where a `sigc::internal::signal_emit0&amp;lt;void,sigc::nil&amp;gt;::emit_reverse::reverse_iterator_type' was expected
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:794: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:794: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:796: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:796: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit1&amp;lt;T_return, T_arg1, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:952: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:952: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:958: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:958: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:963: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:963: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:966: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:966: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:968: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:968: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit1&amp;lt;void, T_arg1, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1026: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1026: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1030: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1030: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1032: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1032: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit2&amp;lt;T_return, T_arg1, T_arg2, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1193: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1193: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1199: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1199: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1204: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1204: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1207: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1207: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1209: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1209: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit2&amp;lt;void, T_arg1, T_arg2, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1269: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1269: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1273: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1273: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1275: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1275: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit3&amp;lt;T_return, T_arg1, T_arg2, T_arg3, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1441: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1441: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1447: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1447: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1452: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1452: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1455: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1455: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1457: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1457: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit3&amp;lt;void, T_arg1, T_arg2, T_arg3, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1519: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1519: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1523: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1523: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1525: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1525: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit4&amp;lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1696: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1696: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1702: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1702: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1707: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1707: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1710: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1710: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1712: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1712: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit4&amp;lt;void, T_arg1, T_arg2, T_arg3, T_arg4, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1776: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1776: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1780: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1780: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1782: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1782: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit5&amp;lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1958: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1958: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1964: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1964: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1969: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1969: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1972: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1972: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1974: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:1974: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit5&amp;lt;void, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2040: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2040: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2044: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2044: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2046: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2046: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit6&amp;lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2227: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2227: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2233: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2233: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2238: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2238: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2241: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2241: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2243: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2243: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit6&amp;lt;void, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2311: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2311: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2315: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2315: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2317: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2317: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static T_return sigc::internal::signal_emit7&amp;lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2503: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2503: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2509: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2509: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2514: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2514: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2517: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2517: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2519: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2519: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h: In static member function `static void sigc::internal::signal_emit7&amp;lt;void, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, sigc::nil&amp;gt;::emit_reverse(sigc::internal::signal_impl*, typename sigc::type_trait&amp;lt;T_type&amp;gt;::take, typename sigc::type_trait&amp;lt;T_derived&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg4&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg5&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg6&amp;gt;::take, typename sigc::type_trait&amp;lt;T_arg7&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2589: error: wrong number of template arguments (6, should be 1)
&lt;br&gt;/usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/../../../../include/c++/3.4.3/bits/stl_iterator.h:91: error: provided for `template&amp;lt;class _Iterator&amp;gt; class std::reverse_iterator'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2589: error: ISO C++ forbids declaration of `reverse_iterator_type' with no type
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2593: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2593: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2595: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/signal.h:2595: error: base operand of `-&amp;gt;' is not a pointer
&lt;br&gt;In file included from /usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h:23,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from /usr/include/sigc++-2.0/sigc++/sigc++.h:26,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from document.h:20,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from arc-context.cpp:28:
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h: In member function `typename sigc::adapts&amp;lt;T_functor&amp;gt;::adaptor_type::result_type sigc::bind_functor&amp;lt;-0x00000000000000001, T_functor, T_type1, T_type2, T_type3, T_type4, T_type5, T_type6, T_type7&amp;gt;::operator()()':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before ',' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/adaptors/bind.h:2012: error: expected `(' before '&amp;gt;' token
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take) [with T_functor = sigc::bind_functor&amp;lt;-0x00000000000000001, sigc::pointer_functor2&amp;lt;Inkscape::Selection*, void*, void&amp;gt;, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil&amp;gt;, T_return = void, T_arg1 = Inkscape::Selection*]':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:144: &amp;nbsp; instantiated from `static void*(* sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::address())(void*) [with T_functor = sigc::bind_functor&amp;lt;-0x00000000000000001, sigc::pointer_functor2&amp;lt;Inkscape::Selection*, void*, void&amp;gt;, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil&amp;gt;, T_return = void, T_arg1 = Inkscape::Selection*]'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:529: &amp;nbsp; instantiated from `sigc::slot1&amp;lt;T_return, T_arg1&amp;gt;::slot1(const T_functor&amp;) [with T_functor = sigc::bind_functor&amp;lt;-0x00000000000000001, sigc::pointer_functor2&amp;lt;Inkscape::Selection*, void*, void&amp;gt;, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil&amp;gt;, T_return = void, T_arg1 = Inkscape::Selection*]'
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:1157: &amp;nbsp; instantiated from `sigc::slot&amp;lt;T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil&amp;gt;::slot(const T_functor&amp;) [with T_functor = sigc::bind_functor&amp;lt;-0x00000000000000001, sigc::pointer_functor2&amp;lt;Inkscape::Selection*, void*, void&amp;gt;, void*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil&amp;gt;, T_return = void, T_arg1 = Inkscape::Selection*]'
&lt;br&gt;arc-context.cpp:210: &amp;nbsp; instantiated from here
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: return-statement with a value, in function returning 'void'
&lt;br&gt;make[2]: *** [arc-context.o] Error 1
&lt;br&gt;make[2]: Leaving directory `/export/home/zdenek/test3/inkscape-0.46/src'
&lt;br&gt;make[1]: *** [all-recursive] Error 1
&lt;br&gt;make[1]: Leaving directory `/export/home/zdenek/test3/inkscape-0.46'
&lt;br&gt;make: *** [all] Error 2
&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22392846&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22392846.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22390103</id>
	<title>Re: Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-07T09:55:24Z</published>
	<updated>2009-03-07T09:55:24Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Sat, 2009-03-07 at 13:49 +0100, zdenek.macura wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Dear Developers,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I compile inkscape software on OpenSolaris and when I run make I get the following issues:
&lt;br&gt;&amp;gt; for instance:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; /usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;&amp;gt; /usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: expected `(' before '&amp;gt;' token
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I use g++ compiler.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Could you please give me a tip how I could resolve the issue ?
&lt;/div&gt;&lt;br&gt;We might be able to figure it out if we see the whole compiler error.
&lt;br&gt;And it would be interesting to know if the libsigc++ tests build for
&lt;br&gt;you, when building the libsigc++ tarball (though you are hopefully using
&lt;br&gt;an OpenSolaris libsigc++ package).
&lt;br&gt;&lt;br&gt;But this is probably something that you should ask the Inkscape
&lt;br&gt;developers about.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Murray Cumming
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22390103&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22390103&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22390103.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22387280</id>
	<title>Problem when compiling inskscape on OpenSolaris</title>
	<published>2009-03-07T04:49:33Z</published>
	<updated>2009-03-07T04:49:33Z</updated>
	<author>
		<name>zdenek.macura</name>
	</author>
	<content type="html">Dear Developers,
&lt;br&gt;&lt;br&gt;I compile inkscape software on OpenSolaris and when I run make I get the following issues:
&lt;br&gt;for instance:
&lt;br&gt;&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: expected `(' before '&amp;gt;' token
&lt;br&gt;&lt;br&gt;I use g++ compiler.
&lt;br&gt;&lt;br&gt;Could you please give me a tip how I could resolve the issue ?
&lt;br&gt;&lt;br&gt;Thanks a lot
&lt;br&gt;&lt;br&gt;Zdenek
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22387280&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Problem-when-compiling-inskscape-on-OpenSolaris-tp22387280p22387280.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-22522999</id>
	<title>problem when compiling inkscape on OpenSolaris</title>
	<published>2009-03-07T04:46:39Z</published>
	<updated>2009-03-07T04:46:39Z</updated>
	<author>
		<name>Alena M.</name>
	</author>
	<content type="html">Dear Developers,
&lt;br&gt;&lt;br&gt;I compile inkscape software on OpenSolaris and when I run make I get the following issues:
&lt;br&gt;for instance:
&lt;br&gt;&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h: In static member function `static T_return sigc::internal::slot_call1&amp;lt;T_functor, T_return, T_arg1&amp;gt;::call_it(sigc::internal::slot_rep*, typename sigc::type_trait&amp;lt;T_arg3&amp;gt;::take)':
&lt;br&gt;/usr/include/sigc++-2.0/sigc++/functors/slot.h:136: error: expected `(' before '&amp;gt;' token
&lt;br&gt;&lt;br&gt;I use g++ compiler.
&lt;br&gt;&lt;br&gt;Could you please give me a tip how I could resolve the issue ?
&lt;br&gt;&lt;br&gt;Thanks a lot
&lt;br&gt;&lt;br&gt;Zdenek
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=22522999&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/problem-when-compiling-inkscape-on-OpenSolaris-tp22522999p22522999.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21973370</id>
	<title>Re: Patch for an ancient version of libsigc++</title>
	<published>2009-02-12T02:26:30Z</published>
	<updated>2009-02-12T02:26:30Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Tue, 2009-02-10 at 22:43 +0000, Adam Sampson wrote:
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm aware that this is a patch for an ancient version of libsigc++ --
&lt;br&gt;&amp;gt; but it's the last 1.2 version, and there are a still a few packages
&lt;br&gt;&amp;gt; around that want the old library,
&lt;br&gt;&lt;br&gt;There are?
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp;so I figured I might as well send it
&lt;br&gt;&amp;gt; in...
&lt;br&gt;&lt;br&gt;Thanks, but please add patches to bugzilla. At the least, please use the
&lt;br&gt;mailing list.
&lt;br&gt;&lt;br&gt;However, libsigc++ 1.2 is very unmaintained. I can't even get it to
&lt;br&gt;build with recent versions of autotools. You might have more success -
&lt;br&gt;it is in the svn archive here:
&lt;br&gt;&lt;a href=&quot;http://svn-archive.gnome.org/svn/libsigc++/trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn-archive.gnome.org/svn/libsigc++/trunk/&lt;/a&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The patch fixes a test that GCC 4.3.3 miscompiles, since it invokes
&lt;br&gt;&amp;gt; undefined behaviour (I think?) -- it changes result twice between
&lt;br&gt;&amp;gt; sequence points, and GCC happily optimises away one of the writes,
&lt;br&gt;&amp;gt; meaning the test fails.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; diff -x config.log -x config.status -ru tmp/libsigc++-1.2.7/tests/retype_return_test.cc work/libsigc++-1.2.7/tests/retype_return_test.cc
&lt;br&gt;&amp;gt; --- tmp/libsigc++-1.2.7/tests/retype_return_test.cc	2001-05-21 22:26:16.000000000 +0100
&lt;br&gt;&amp;gt; +++ work/libsigc++-1.2.7/tests/retype_return_test.cc	2009-02-10 22:28:20.000000000 +0000
&lt;br&gt;&amp;gt; @@ -14,7 +14,8 @@
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &amp;quot;&amp;gt;&amp;gt;test 1&amp;quot;&amp;lt;&amp;lt;endl;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;Slot0&amp;lt;int&amp;gt; s=retype_return&amp;lt;int&amp;gt;(slot(&amp;foo));
&lt;br&gt;&amp;gt; - &amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; (result+=s()) &amp;lt;&amp;lt;endl;
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;int t=s();
&lt;br&gt;&amp;gt; + &amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; (result+=t) &amp;lt;&amp;lt;endl;
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &amp;quot;&amp;gt;&amp;gt;test 2&amp;quot;&amp;lt;&amp;lt;endl;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;Slot0&amp;lt;void&amp;gt; s2=retype_return&amp;lt;void&amp;gt;(slot(&amp;foo));
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; 
&lt;/div&gt;-- 
&lt;br&gt;Murray Cumming
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21973370&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21973370&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-Patch-for-an-ancient-version-of-libsigc%2B%2B-tp21973370p21973370.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21653255</id>
	<title>Obama -- The Judas Goat</title>
	<published>2009-01-25T08:10:01Z</published>
	<updated>2009-01-25T08:10:01Z</updated>
	<author>
		<name>Benjamin Otte</name>
	</author>
	<content type="html">Obama -- The Judas Goat
&lt;br&gt;1/25/2009
&lt;br&gt;By David Duke
&lt;br&gt;&lt;br&gt;Judas Goat\ A goat that leads other goats or sheep to slaughter. Also, one who entices into danger and betrays others. The name is an allusion to Judas Iscariot, who betrayed Jesus for 30 pieces of slaughter. (From Merriam Websters Dictionary)
&lt;br&gt;&lt;br&gt;Barack Hussein Obama is a Judas Goat.
&lt;br&gt;&lt;br&gt;Extremist Jews guided Barack Hussein Obamas career from day one, even all the way back to Harvard Law School. &amp;nbsp;Radical Zionist hitman, David Axelrod previously orchestrated the Jewish-financed and organized defeat of perceived anti-Zionist Sen. Charles Percy. He is the man who ran Obamas campaign for President and who is his chief handler. Obamas campaign was overwhelmingly financed by the most powerful Zionist bankers in the world. His campaigns largest contribution source was the Zionist international banking firm of Goldman Sachs. (FEC campaign records). In both Obamas Senate and Presidential campaign he prostrated himself before AIPAC (American Israel Public Affairs Committee) promising even more money and blood for Israels terrorism than even the supine John McCain, and even more money and blood than the previous Shabbez Goy in the White House, George Bush. Before the Israeli terrorism and mass murder in Gaza, he went to Israel and said that he supported Israels p
&lt;br&gt;&amp;nbsp;lanned murderous terrorism against the men, women and children of Gaza.
&lt;br&gt;&lt;br&gt;His first act as President-elect was to appoint a rabid Zionist, Israeli dual citizen who served in the Israeli Army as his Chief of Staff, Rahm Emmanuel. As thousands of women and children in Gaza were killed or maimed, Obama remained silent. Within a few days as President Obama supported indiscriminate American missile strikes in villages of our ally Pakistan, a clear continuation of Bushs policies. &amp;nbsp;He completely supports the theft of trillions of American taxpayer dollars to the Zionist international bankers. Eighty percent of American Jews voted for Obama, and all the main leaders of the Jewish Supremacist state of Israel have proclaimed Obama as the perfect man for U.S. President.
&lt;br&gt;&lt;br&gt;What better for the Zionists to have their own servant perceived as a clean break from the Jewish extremist-controlled Bush administration? What better than for the Zionists than to have their Shabbez Goy be treated by the worlds press and even by much of the anti-Zionist community as a man of real change? What better for the Zionists than for the world to think that Obama will be a change from the Zionist-controlled policies when he willing to do anything that Israel demands? What better for the Zionist murderers to have their craven puppet be looked at by the whole world as a man of honor and integrity and fairness.
&lt;br&gt;&lt;br&gt;In the slaughterhouse, the Judas Goat is often painted with bright colors, adorned with strong, sweet scents to lure the sheep to their pens and to their death. Obama, the Judas Goat of our time, is looked upon by millions of Zionist-propagandized sheep as the man who will lead them to salvation.
&lt;br&gt;&lt;br&gt;Instead, he leads America, Palestine and the world to the bloody altar of Jewish Supremacism.
&lt;br&gt;&lt;br&gt;Any supposed anti-Zionist who praises Barack Obama is actually aiding this Judas Goat to lead us all to slaughter. Every person who truly opposes Jewish extremism must speak out and expose the Judas Goat named Barack Obama!
&lt;br&gt;&lt;br&gt; Dr. David Duke
&lt;br&gt;&lt;br&gt;Former Member of the House of Representatives
&lt;br&gt;&lt;br&gt;State of Louisiana
&lt;br&gt;&lt;br&gt;United States of America
&lt;br&gt;&lt;br&gt;It is up to you the people of the United States who can still think freely, &amp;nbsp;and up to all of the people of the world who are able to see through the deceptions of the Zionist-influenced Global media &amp;nbsp;-- to get this simple, powerful message to everyone on earth. Email this message to your friends, post it on forums and websites and put links to it on every website, facebook or other media in the world. Go and seek out media and Internet sites not controlled by Zionist power. Make youtube videos of this message, (use the short audio and find good illustrative pictures) and post it untill your fingers are worn and tired, print it and mail it to newspapers or any media outlet that has still not fallen under the propaganda of the Zionists. Let the world know the truth. Person by person, in the USA, Canada, UK, France, Germany, Italy, japan, Russia, China, Africa, Palestine, South America and across the whole world this Judas Goat must be exposed for what he is, so that when begin
&lt;br&gt;&amp;nbsp;s to do his evil for Israel, the whole world will know exactly what is going on and resist!
&lt;br&gt;&lt;br&gt;Source : &lt;a href=&quot;http://www.davidduke.com/general/obama-the-judas-goat_7317.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.davidduke.com/general/obama-the-judas-goat_7317.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;------------------------
&lt;br&gt;&lt;br&gt;Why is the President of Israel, the terrorist who just oversaw the Zionist mass murder and maiming of thousands of Palestinians so happy
&lt;br&gt;that Obama is President of the USA?
&lt;br&gt;by David Duke
&lt;br&gt;&lt;br&gt;&lt;br&gt;Read the excerpt from the Israeli News about how President Perez and Israel think that Obamas becoming U.S. President is great day
&lt;br&gt;for Israel.
&lt;br&gt;&lt;br&gt;&amp;quot;Israels President Shimon Peres ecstatic over the election of Obama&amp;quot;
&lt;br&gt;Ronen Medzini Israel News Jan. 21
&lt;br&gt;&lt;br&gt;Today is a great day not only for the United States of America, but for the entire world, President Shimon Peres wrote in a letter
&lt;br&gt;addressed to Barack Obama on the day of his inauguration as president of the United States.
&lt;br&gt;&lt;br&gt;Obama was elected by the United States, but as a matter of fact, he was chosen by the whole of humankind,
&lt;br&gt;&lt;br&gt;Why is Peres so ecstatic?
&lt;br&gt;&lt;br&gt;Why shouldnt he be, he knows that Obama is completely in the grip of the extremist Jewish Zionists in America, and he knows that the
&lt;br&gt;greater Obamas popularity and idol worship, the more Obama can do for the International Zionist Cause.
&lt;br&gt;&lt;br&gt;Any thinking and caring human being who realizes that the Zionist-controlled American foreign policy has been a disaster for the robbed
&lt;br&gt;and murdered people of Palestine, Lebanon, Iraq and a catastrophe for the 50,000 American wounded in Iraq and Afghanistan, as well
&lt;br&gt;as an economic catastrophe for the hardworking Americans who pay trillions to finance these wars for Israel -- must wake up the fact that
&lt;br&gt;supporting Obama and increasing his popularity &amp;nbsp;will only aid Zionist terrorism, war, and their murder and oppression of the Palestinians. It
&lt;br&gt;will also hasten the economic suffering of billions of people around the world as his popularity enables him to more easily aid the Zionist
&lt;br&gt;International Bankers steal the wealth of the United States, Europe and the world. &amp;nbsp;Obama is totally in the bloodstained and green ink-
&lt;br&gt;stained hands of the Zionists. The hard truth is that the more good will and support Obama has also gives more power to support the
&lt;br&gt;Zionist agenda!
&lt;br&gt;&lt;br&gt;Mark my words. The Obama Presidency will be disaster for America and for the world.
&lt;br&gt;&lt;br&gt;Obama was put into office by the Zionists. His top two cohorts for years have been the radical Jews David Axelrod and Rahm
&lt;br&gt;Emmanuel. Both have long records of radical Zionism and have been attack dogs against anyone perceived as having the slightest
&lt;br&gt;opposition to Israel. One such victim was Sen. Charles Percy, who both men worked to defeat and destroy because he dared to only be
&lt;br&gt;99 percent rather than 100 percent pro-Israel. Rahm Emmanuel, a dual citizen of Israel who went to fight for Israel, he has a long
&lt;br&gt;pedigree of Jewish extremism. His father served in the Irgun Terrorist Gang and he himself is named after an Irgun terrorist.
&lt;br&gt;&lt;br&gt;Zionist leaders in Chicago actually call Obama the first Jewish President and boast that Jews were key players in Obamas every step
&lt;br&gt;up the ladder to President.
&lt;br&gt;&lt;br&gt;from the very earliest days, extremist Jews were the largest contributors to his campaign. In the beginning of his Presidential bid, three
&lt;br&gt;Hollywood Jews that constantly make movies about Jewish suffering, but never about the Zionist terrorism and theft against the
&lt;br&gt;Palestinian people, Steven Spielberg, David Geffen, and Jeffrey Katzenberg raised 1.2 million for Obama in a single Hollywood party.
&lt;br&gt;&lt;br&gt;By the time Obamas campaign was in full swing, he had huge support from the criminal Zionist International Banking firms such as
&lt;br&gt;Goldman Sachs and Lehman brothers. Goldman Sachs was Obamas biggest single contributor, and his vast war chest came not from
&lt;br&gt;American manufacturing firms like GM or even American oil companies, (not one was in his top twenty) it was overwhelmingly dominated
&lt;br&gt;by Zionist international bankers, the same ones whose thievery and fraud are giving the world this economic depression.
&lt;br&gt;&lt;br&gt;For those looking for meaningful social and political change, do you really think it will come from this man who has already been bought
&lt;br&gt;heart, head and soul by the most powerful czars of the international financial establishment and the biggest globalists in the world?
&lt;br&gt;&lt;br&gt;I know that many are desperate for change, so desperate that you want to believe anything. But in the face of these facts cant you see
&lt;br&gt;that Obama will be even more dangerous to freedom and justice than even George Bush and his band of Neocons were. What better
&lt;br&gt;way to wipe out George Bushs hated legacy and make the world believe that America has really changed than with the election of
&lt;br&gt;Obama. But, all the real Zionist power, Zionist media power, and Zionist financial power in America is still in place, even stronger than
&lt;br&gt;ever.
&lt;br&gt;&lt;br&gt;Many Americans and others around the world who want to do good are now telling us how wonderful Obama will be as president. What
&lt;br&gt;a great change it will be from the old policies. This is because of the Zionist-Controlled media hype, promoting Obama. The fact is that
&lt;br&gt;these poor sods are ignorantly helping the radical Zionist agenda in Israel and around the world.
&lt;br&gt;&lt;br&gt;Every day that you dont help expose Obama for the Zionist servant that he actually is, his popularity will be a greater danger to peace
&lt;br&gt;and freedom.
&lt;br&gt;&lt;br&gt;If the Zionist terrorist Shimon Perez is happy about the coronation of Obama, then why in the hell should you be?
&lt;br&gt;&lt;br&gt;David Duke
&lt;br&gt;&lt;br&gt;Source : &lt;a href=&quot;http://www.davidduke.com/general/7303_7303.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.davidduke.com/general/7303_7303.html&lt;/a&gt;&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br&gt;You or someone using your email adress is currently subscribed to the Lawrence Auster
&lt;br&gt;Newletter. If you wish to unsubscribe from our mailing list, please let us know by calling to 1 212 865 1284
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;Lawrence Auster,
&lt;br&gt;238 W 101 St Apt. 3B
&lt;br&gt;New York, NY &amp;nbsp;10025
&lt;br&gt;Contact: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21653255&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;lawrence.auster@...&lt;/a&gt;
&lt;br&gt;-------------------------------------
&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21653255&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Obama----The-Judas-Goat-tp21653255p21653255.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21412626</id>
	<title>Re: Generic member functors</title>
	<published>2009-01-12T03:17:17Z</published>
	<updated>2009-01-12T03:17:17Z</updated>
	<author>
		<name>klaus triendl-4</name>
	</author>
	<content type="html">JinXXXX Kili Billl schrieb:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;code&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Parent p;
&lt;br&gt;&amp;gt;&amp;gt; Child c;
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; sigc::slot&amp;lt;int, Parent*, int, double, char&amp;gt; myclosure;
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; myclosure = sigc::mem_fun(&amp;Parent::f);
&lt;br&gt;&amp;gt;&amp;gt; const int ret1 = myclosure(&amp;p, 0, 1.0, 'c');
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; myclosure = sigc::mem_fun(&amp;Child::g); &amp;lt;-- Error line
&lt;br&gt;&amp;gt;&amp;gt; const int ret2 = myclosure(&amp;c, 0, 1.0, 'c');
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;/code&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Does this code compile for you? I just did copy and paste and tried to
&lt;br&gt;&amp;gt; compile the above code. The result was:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; error: invalid conversion from ‘Parent* const’ to ‘Child*’
&lt;/div&gt;&lt;br&gt;Sorry, my fault, I didn't try to compile it.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; So, if this is the right way to cope with my problem, why it refuses to
&lt;br&gt;&amp;gt; compile?
&lt;br&gt;&lt;br&gt;Because in the end the slot must call the functor stored in the slot
&lt;br&gt;(the functor that you assign to the slot).
&lt;br&gt;The function slot4&amp;lt;int, Parent*, int double, char&amp;gt;::call_it() calls the
&lt;br&gt;mem_functor3&amp;lt;int, Child*, int, double, char&amp;gt; with the parameter types
&lt;br&gt;(int, Parent*, int, double, char) - Parent* is not convertible to Child*
&lt;br&gt;or Child&amp;.
&lt;br&gt;&lt;br&gt;&lt;br&gt;You have 2 possibilities:
&lt;br&gt;&lt;br&gt;1) make g() [pure] virtual in Parent to get polymorphic runtime behaviour.
&lt;br&gt;If you need to be totally flexible about the object instance during
&lt;br&gt;runtime then this is the right solution.
&lt;br&gt;&lt;br&gt;2) Rather use mem_fun() to bind the object instance than specifying the
&lt;br&gt;instance when calling the slot.
&lt;br&gt;If you can decide already at compile time which object instance to use
&lt;br&gt;then you can use this solution.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Here is some code to show what I mean:
&lt;br&gt;1)
&lt;br&gt;&amp;lt;code&amp;gt;
&lt;br&gt;class Parent
&lt;br&gt;{
&lt;br&gt;public:
&lt;br&gt;&amp;nbsp; int f(int, double, char)
&lt;br&gt;&amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; virtual int g(int, double, char) = 0;
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;class Child: public Parent
&lt;br&gt;{
&lt;br&gt;public:
&lt;br&gt;&amp;nbsp; // virtuals from Parent
&lt;br&gt;&amp;nbsp; virtual int g(int, double, char)
&lt;br&gt;&amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;// somewhere else:
&lt;br&gt;Parent p;
&lt;br&gt;Child c1, c2;
&lt;br&gt;sigc::slot&amp;lt;int, Parent*, int, double, char&amp;gt; myclosure;
&lt;br&gt;&lt;br&gt;myclosure = sigc::mem_fun(&amp;Parent::f);
&lt;br&gt;// call p-&amp;gt;f()
&lt;br&gt;myclosure(&amp;p, 0, 1.0, 'c');
&lt;br&gt;&lt;br&gt;myclosure = sigc::mem_fun(&amp;Parent::g);
&lt;br&gt;// call c1-&amp;gt;g()
&lt;br&gt;myclosure(&amp;c1, 0, 1.0, 'c');
&lt;br&gt;// call c2-&amp;gt;g()
&lt;br&gt;myclosure(&amp;c2, 0, 1.0, 'c');
&lt;br&gt;&amp;lt;/code&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;2)
&lt;br&gt;&amp;lt;code&amp;gt;
&lt;br&gt;class Parent
&lt;br&gt;{
&lt;br&gt;public:
&lt;br&gt;&amp;nbsp; int f(int, double, char)
&lt;br&gt;&amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;class Child: public Parent
&lt;br&gt;{
&lt;br&gt;public:
&lt;br&gt;&amp;nbsp; int g(int, double, char)
&lt;br&gt;&amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;&lt;br&gt;// somewhere else
&lt;br&gt;Parent p;
&lt;br&gt;Child c1, c2;
&lt;br&gt;sigc::slot&amp;lt;int, int, double, char&amp;gt; myclosure;
&lt;br&gt;&lt;br&gt;// call p-&amp;gt;f()
&lt;br&gt;myclosure = sigc::mem_fun(&amp;p, &amp;Parent::f);
&lt;br&gt;myclosure(0, 1.0, 'c');
&lt;br&gt;&lt;br&gt;// call c1-&amp;gt;g()
&lt;br&gt;myclosure = sigc::mem_fun(&amp;c1, &amp;Child::g);
&lt;br&gt;myclosure(0, 1.0, 'c');
&lt;br&gt;&lt;br&gt;// call c2-&amp;gt;g()
&lt;br&gt;myclosure = sigc::mem_fun(&amp;c2, &amp;Child::g);
&lt;br&gt;myclosure(0, 1.0, 'c');
&lt;br&gt;&amp;lt;/code&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Klaus
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21412626&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Generic-member-functors-tp21402020p21412626.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21406028</id>
	<title>Re: Generic member functors</title>
	<published>2009-01-11T15:45:20Z</published>
	<updated>2009-01-11T15:45:20Z</updated>
	<author>
		<name>Peter Basista</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;

&lt;/head&gt;
&lt;body class='hmmessage'&gt;


&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=unicode&quot;&gt;
&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft SafeHTML&quot;&gt;


Hello Klaus,&lt;br&gt;&lt;br&gt;&amp;gt; There are no ambiguities with sigc++. There are templates involved, so &lt;br&gt;&amp;gt; you can't e.g. assign a mem_functor typed for a child to a mem_functor &lt;br&gt;&amp;gt; typed for a Parent. And I think you are mixing slots and functors...&lt;br&gt;&lt;br&gt;I am sorry, you are apparently right.&lt;br&gt;&lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt; A slot represents a callable entity, no matter what functor is behind. &lt;br&gt;&amp;gt; So, a slot is the generic functor you want to have (only knowing about &lt;br&gt;&amp;gt; the return type and parameters, but loosing compile-time information &lt;br&gt;&amp;gt; about the original functor).&lt;br&gt;&lt;br&gt;Thank you very much for explaining this to me. It is precisely what I need.&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; What you want to do is the following:&lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt; &amp;lt;code&amp;gt;&lt;br&gt;&amp;gt; Parent p;&lt;br&gt;&amp;gt; Child c;&lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt; sigc::slot&amp;lt;int, Parent*, int, double, char&amp;gt; myclosure;&lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt; myclosure = sigc::mem_fun(&amp;amp;Parent::f);&lt;br&gt;&amp;gt; const int ret1 = myclosure(&amp;amp;p, 0, 1.0, 'c');&lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt; myclosure = sigc::mem_fun(&amp;amp;Child::g); &amp;lt;-- Error line&lt;br&gt;&amp;gt; const int ret2 = myclosure(&amp;amp;c, 0, 1.0, 'c');&lt;br&gt;&amp;gt; &amp;lt;/code&amp;gt;&lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt;&amp;nbsp; &lt;br&gt;&amp;gt; Klaus Triend&lt;/div&gt;&lt;br&gt;Does this code compile for you? I just did copy and paste and tried to compile the above code. The result was:&lt;br&gt;&lt;br&gt;error: invalid conversion from ‘Parent* const’ to ‘Child*’&lt;br&gt;&lt;br&gt;This is the same error I described before in the attached file.&lt;br&gt;&lt;br&gt;So, if this is the right way to cope with my problem, why it refuses to compile?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;But anyway, thank you for a brief and valuable response.&lt;br&gt;Now I at leas understand better what is what ...&lt;br&gt;&lt;br /&gt;&lt;hr /&gt;See all the ways you can stay connected &lt;a href='http://www.microsoft.com/windows/windowslive/default.aspx' target='_new' rel=&quot;nofollow&quot;&gt;to friends and family&lt;/a&gt;&lt;/body&gt;
&lt;/html&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21406028&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Generic-member-functors-tp21402020p21406028.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21405446</id>
	<title>Re: Generic member functors</title>
	<published>2009-01-11T14:48:55Z</published>
	<updated>2009-01-11T14:48:55Z</updated>
	<author>
		<name>klaus triendl-4</name>
	</author>
	<content type="html">JinXXXX Kili Billl schrieb:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have been trying to use sigc++ library to make a kind of a generic 
&lt;br&gt;&amp;gt; member functor, but I didn't succeed.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Basically, I would like to create a functor, to which I would be able 
&lt;br&gt;&amp;gt; assign arbitrary member functions of any class derived from a previously 
&lt;br&gt;&amp;gt; chosen base class. I tried this, but with not much luck. I am attaching 
&lt;br&gt;&amp;gt; a simple example where I would like to show what exactly I mean.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I hope that something like this is possible with sigc++.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I have also come across several ambiguities with sigc++, which are 
&lt;br&gt;&amp;gt; commented in the source file. I don't understand the behavior of sigc++ 
&lt;br&gt;&amp;gt; there, and I marked these spots, so you can look at them.
&lt;/div&gt;&lt;br&gt;There are no ambiguities with sigc++. There are templates involved, so 
&lt;br&gt;you can't e.g. assign a mem_functor typed for a child to a mem_functor 
&lt;br&gt;typed for a Parent. And I think you are mixing slots and functors...
&lt;br&gt;&lt;br&gt;A slot represents a callable entity, no matter what functor is behind. 
&lt;br&gt;So, a slot is the generic functor you want to have (only knowing about 
&lt;br&gt;the return type and parameters, but loosing compile-time information 
&lt;br&gt;about the original functor).
&lt;br&gt;What you want to do is the following:
&lt;br&gt;&lt;br&gt;&amp;lt;code&amp;gt;
&lt;br&gt;Parent p;
&lt;br&gt;Child c;
&lt;br&gt;&lt;br&gt;sigc::slot&amp;lt;int, Parent*, int, double, char&amp;gt; myclosure;
&lt;br&gt;&lt;br&gt;myclosure = sigc::mem_fun(&amp;Parent::f);
&lt;br&gt;const int ret1 = myclosure(&amp;p, 0, 1.0, 'c');
&lt;br&gt;&lt;br&gt;myclosure = sigc::mem_fun(&amp;Child::g);
&lt;br&gt;const int ret2 = myclosure(&amp;c, 0, 1.0, 'c');
&lt;br&gt;&amp;lt;/code&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Klaus Triendl
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21405446&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Generic-member-functors-tp21402020p21405446.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21402020</id>
	<title>Generic member functors</title>
	<published>2009-01-11T09:58:16Z</published>
	<updated>2009-01-11T09:58:16Z</updated>
	<author>
		<name>Peter Basista</name>
	</author>
	<content type="html">&lt;html&gt;
&lt;head&gt;

&lt;/head&gt;
&lt;body class='hmmessage'&gt;
Hello,&lt;br&gt;&lt;br&gt;I have been trying to use sigc++ library to make a kind of a generic member functor, but I didn't succeed.&lt;br&gt;&lt;br&gt;Basically, I would like to create a functor, to which I would be able assign arbitrary member functions of any class derived from a previously chosen base class. I tried this, but with not much luck. I am attaching a simple example where I would like to show what exactly I mean.&lt;br&gt;&lt;br&gt;I hope that something like this is possible with sigc++.&lt;br&gt;&lt;br&gt;I have also come across several ambiguities with sigc++, which are commented in the source file. I don't understand the behavior of sigc++ there, and I marked these spots, so you can look at them.&lt;br&gt;&lt;br&gt;Thank you all in advance.&lt;br&gt;&lt;br /&gt;&lt;hr /&gt;Get news, entertainment and everything you care about at Live.com. &lt;a href='http://www.live.com/getstarted.aspx ' target='_new' rel=&quot;nofollow&quot;&gt;Check it out!&lt;/a&gt;&lt;/body&gt;
&lt;/html&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;/** If you have pkg-config, then you can compile this file for example like this:
&lt;br&gt;&amp;nbsp;* c++ -Wall `pkg-config --cflags --libs sigc++-2.0` sigcpp.cpp
&lt;br&gt;&amp;nbsp;*/
&lt;br&gt;&lt;br&gt;#include &amp;lt;iostream&amp;gt;
&lt;br&gt;#include &amp;lt;sigc++/sigc++.h&amp;gt;
&lt;br&gt;&lt;br&gt;class Parent {
&lt;br&gt;public:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int f (int i, double d, char c);
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;int Parent::f (int i, double d, char c) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Parent::f&amp;quot; &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;class Child : public Parent {
&lt;br&gt;public:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int g (int i, double d, char c);
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;int Child::g (int i, double d, char c) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; &amp;quot;Child::g&amp;quot; &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;typedef sigc::slot&amp;lt;int, Parent *, int, double, char&amp;gt; sp;
&lt;br&gt;&lt;br&gt;typedef sigc::slot&amp;lt;int, Child *, int, double, char&amp;gt; sch;
&lt;br&gt;&lt;br&gt;typedef sigc::mem_functor3&amp;lt;int, Parent, int, double, char&amp;gt; mfp;
&lt;br&gt;&lt;br&gt;typedef sigc::mem_functor3&amp;lt;int, Child, int, double, char&amp;gt; mfch;
&lt;br&gt;&lt;br&gt;typedef sigc::mem_functor4&amp;lt;int, Parent, int, double, char, char *&amp;gt; mfp4;
&lt;br&gt;&lt;br&gt;typedef sigc::mem_functor4&amp;lt;int, Child, int, double, char, char *&amp;gt; mfch4;
&lt;br&gt;&lt;br&gt;int foo (void) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Parent p;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Child ch;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mfp a_p = sigc::mem_fun(&amp; Parent::f); 	// &amp;lt;-- This works.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; a_p(&amp; p, 0, 1.0, 'c');	/// &amp;lt;-- Works
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; a_p(&amp; ch, 0, 1.0, 'c');	/// &amp;lt;-- Works
&lt;br&gt;&lt;br&gt;//	mfp a_ch = sigc::mem_fun(&amp; Child::g); 	// &amp;lt;-- Doesn't work, which seems strange.
&lt;br&gt;//	Compile error: conversion from âsigc::mem_functor3&amp;lt;int, Child, int, double, char&amp;gt;â to non-scalar type âmfpâ requested
&lt;br&gt;&lt;br&gt;//	mfch b_p = sigc::mem_fun(&amp; Parent::f);	// &amp;lt;-- Doesn't work, but this seems correct, because of conversion from Parent to Child.
&lt;br&gt;//	Compile error: conversion from âsigc::mem_functor3&amp;lt;int, Parent, int, double, char&amp;gt;â to non-scalar type âmfchâ requested
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mfch b_ch = sigc::mem_fun(&amp; Child::g);	// &amp;lt;-- This works.
&lt;br&gt;//	b_ch(&amp; p, 0, 1.0, 'c');		/// &amp;lt;-- Doesn't work, but this is OK.
&lt;br&gt;//	Correctly displayed error message: invalid conversion from âParent*â to âChild*â
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; b_ch(&amp; ch, 0, 1.0, 'c');	/// &amp;lt;-- Works
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sp c_p = sigc::mem_fun(&amp; Parent::f);	/// &amp;nbsp;&amp;lt;-- This works
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; c_p(&amp; p, 0, 1.0, 'c');		/// &amp;lt;-- Works
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; c_p(&amp; ch, 0, 1.0, 'c');		/// &amp;lt;-- Works
&lt;br&gt;&lt;br&gt;//	sp c_ch = sigc::mem_fun(&amp; Child::g);	/// &amp;nbsp;&amp;lt;-- This does not work, which seems also strange.
&lt;br&gt;//	Compile error: invalid conversion from âParent* constâ to âChild*â
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sch d_p = sigc::mem_fun(&amp; Parent::f);		/// &amp;nbsp;&amp;lt;-- This compiles, which is strange.
&lt;br&gt;//	d_p(&amp; p, 0, 1.0, 'c');		// &amp;lt;-- But this refuses to compile, which is correct.
&lt;br&gt;// &amp;nbsp; &amp;nbsp; &amp;nbsp;Correctly displayed error message: invalid conversion from âParent*â to âChild*â
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d_p(&amp; ch, 0, 1.0, 'c'); 	// &amp;lt;-- Works
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sch d_ch = sigc::mem_fun(&amp; Child::g);		/// &amp;nbsp;&amp;lt;-- This works
&lt;br&gt;//	d_ch(&amp; p, 0, 1.0, 'c');		/// &amp;lt;-- Doesn't work, but this is OK.
&lt;br&gt;//	Correctly displayed error message: invalid conversion from âParent*â to âChild*â
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; d_ch(&amp; ch, 0, 1.0, 'c');	/// &amp;lt;-- Works
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // I would like to ask for explnation of how to work-around this previously mentioned error:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Error: invalid conversion from âParent* constâ to âChild*â
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // First, why the `const` is added there?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /** I agree that this error is in some way reasonable and I know that this usage of functors is not exactly correct.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;But is there a correct usage, then?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;What I would like to achieve:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;Have a generic functor, to which I would be able to assign a member function
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;of arbitrary class derived from the previously specified base class. The only limitations
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;would be the number of parameters and the type of parameters. I would also like to be able
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;to alter the number of parameters as well as their type by standard means of sigc++ library.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;The most important is that I would like this functor to behave as the unbound member functor,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;so I would be able to choose the instance from which the member function will be called.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* &amp;nbsp;How can I achieve something like this?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;int main (int argc, char ** argv) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; foo() &amp;lt;&amp;lt; std::endl;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0;
&lt;br&gt;}
&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21402020&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Generic-member-functors-tp21402020p21402020.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21250497</id>
	<title>Re: Fixing lambda bugs</title>
	<published>2009-01-02T03:52:08Z</published>
	<updated>2009-01-02T03:52:08Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Wed, 2008-12-31 at 07:26 +0000, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21250497&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kenelson8@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt; Murray,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The key problem is the usual problem with references and const references.
&lt;br&gt;&lt;br&gt;This is still rather vague.
&lt;br&gt;&lt;br&gt;&amp;gt; Although I and probably a few others have suggested adding a template 
&lt;br&gt;&amp;gt; pattern to pass arguments through as reference without forcing a type check
&lt;br&gt;&amp;gt; (ie. &amp;nbsp;template &amp;lt;class &amp;T&amp;gt; void foo(T t) {} &amp;nbsp;where T will be any reference, const
&lt;br&gt;&amp;gt; reference, volitile const reference, etc.), it was summarily rejected.
&lt;br&gt;&lt;br&gt;I doubt that it was &amp;quot;summarily rejected&amp;quot;. Do you have a URL?
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp; However, 
&lt;br&gt;&amp;gt; recently I looked through the proposed changes for the next version.
&lt;br&gt;&lt;br&gt;What &amp;quot;proposed changes&amp;quot; do you mean?
&lt;br&gt;&lt;br&gt;&amp;gt; Still no action as far as I can see. &amp;nbsp;However, one of changes did inspire me to 
&lt;br&gt;&amp;gt; update my print format class which got me working on the problem again. &amp;nbsp;That
&lt;br&gt;&amp;gt; was that I could use a variodic template pattern. &amp;nbsp; As part of that work I built a 
&lt;br&gt;&amp;gt; wrapper to work around the problem.
&lt;br&gt;&lt;br&gt;The rest of this is rather difficult for me to parse. Are you Karl
&lt;br&gt;Nelson, by any chance?
&lt;br&gt;&lt;br&gt;As usual, the best way to proceed is probably to create a small test
&lt;br&gt;case that shows what the actual problem is. Please put this in bugzilla.
&lt;br&gt;&lt;br&gt;You have not yet mentioned a specific class whose API or ABI you would
&lt;br&gt;like to change. If you can't name them now, then I guess we can look at
&lt;br&gt;a patch. Note also that an ABI-breaking libsigc++ 3.0 (or suchlike) is
&lt;br&gt;entirely possible at some time.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I have two options that can fix the defect with argument copying, some of the 
&lt;br&gt;&amp;gt; operator returns not promoting properly, and improper function of equality operators. &amp;nbsp;
&lt;br&gt;&amp;gt; 1) Apply the same pattern in my variodic template library to this problem. &amp;nbsp;
&lt;br&gt;&amp;gt; 2) Convert the lambda library to use the variodic template library. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In either case the outward library interface should have no changes what-so-ever.
&lt;br&gt;&amp;gt; However, the second option will gut the library entirely. &amp;nbsp;I am slightly more interested
&lt;br&gt;&amp;gt; in the second than the first in that I don't remember (or perhaps there have been 
&lt;br&gt;&amp;gt; patches applied) such that figuring out where to perform the surgery for option 1 will
&lt;br&gt;&amp;gt; take a while. &amp;nbsp;Then again option 2 may have similar problems. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In either case if I cut too deeply in the internals it will break users that wrote a function
&lt;br&gt;&amp;gt; that a lambda without a closure (a very bad idea) or a user that wrote their own internal
&lt;br&gt;&amp;gt; to use lambda (some of the extension libraries may have done something like this). &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; To give you a better idea which way may be best I have inclosed a sample for the 
&lt;br&gt;&amp;gt; variodic template library so that this isn't quite so cryptic. &amp;nbsp;Significant differences would
&lt;br&gt;&amp;gt; be that variodic functions use execute to avoid that sun bug with operator() and lambda
&lt;br&gt;&amp;gt; would get variodic_function&amp;lt;T_func&amp;gt; as a base class.
&lt;/div&gt;&lt;br&gt;You forget to attach that. But I'd still like to start with a test case
&lt;br&gt;that shows what problem you are trying to solve.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; The type promotion I have working in practice, but I will need to plan how to 
&lt;br&gt;&amp;gt; apply it current lambda library. &amp;nbsp;I have also attached a sample of that. &amp;nbsp;This one may have
&lt;br&gt;&amp;gt; architecture issues as int*int is not actually an int but may be a int64_t so there are 
&lt;br&gt;&amp;gt; a fair number of edge cases to consider. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Does this help clarify?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; --Karl
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;-------------- Original message ----------------------
&lt;br&gt;&amp;gt; From: Murray Cumming &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21250497&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Fri, 2008-12-12 at 02:28 +0000, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21250497&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kenelson8@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; Hello all,
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; I see there are some outstanding bugs in the lambda section. &amp;nbsp;I think that I 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; can fix some of them along with some of the FIXME sections, however, I 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; am concerned with the level of changes that may be required. &amp;nbsp;Is anyone
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; using the lambda?
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Probably, yes.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; Also is anyone connecting into the internal classes which
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; will likely get broken by a big change?
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Can you be more specific? Then we can judge what a change there would
&lt;br&gt;&amp;gt; &amp;gt; affect. If it's obviously a private internal thing then there's no
&lt;br&gt;&amp;gt; &amp;gt; problem with breaking it.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Murray.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; =======================================================
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; #include &amp;lt;iostream&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; struct variodic0
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; typedef variodic0 next_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef void value1_type;
&lt;br&gt;&amp;gt; &amp;nbsp; next_type&amp; next() { return *this; }
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; variodic0 variodic0_instance; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T1&amp;gt;
&lt;br&gt;&amp;gt; struct variodic1 {
&lt;br&gt;&amp;gt; &amp;nbsp; typedef variodic0 next_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T1 value1_type;
&lt;br&gt;&amp;gt; &amp;nbsp; variodic1(value1_type&amp; p1)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; : value_(p1) {}
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value() const {return value_; }
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value1() const { return value_ ;}
&lt;br&gt;&amp;gt; &amp;nbsp; next_type&amp; next() const { return variodic0_instance; }
&lt;br&gt;&amp;gt; private:
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value_;
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;gt; struct variodic2 {
&lt;br&gt;&amp;gt; &amp;nbsp; typedef variodic1&amp;lt;T2&amp;gt; next_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T1 value1_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T2 value2_type;
&lt;br&gt;&amp;gt; &amp;nbsp; variodic2(T1&amp; p1, T2&amp; p2)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; : value_(p1), next_(p2){}
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value() const {return value_; }
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value1() const {return value_; }
&lt;br&gt;&amp;gt; &amp;nbsp; value2_type&amp; value2() const {return next_.value1(); }
&lt;br&gt;&amp;gt; &amp;nbsp; next_type &amp;next() const {return const_cast&amp;lt;next_type&amp;&amp;gt;(next_); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; private:
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value_;
&lt;br&gt;&amp;gt; &amp;nbsp; next_type &amp;nbsp; &amp;nbsp;next_;
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T1, class T2, class T3&amp;gt;
&lt;br&gt;&amp;gt; struct variodic3 {
&lt;br&gt;&amp;gt; &amp;nbsp; typedef variodic2&amp;lt;T2,T3&amp;gt; next_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T1 value1_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T2 value2_type;
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T3 value3_type;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; variodic3(T1&amp; p1, T2&amp; p2, T3&amp; p3)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; : value_(p1), next_(p2,p3){}
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value() const {return value_; }
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value1() const {return value_; }
&lt;br&gt;&amp;gt; &amp;nbsp; value2_type&amp; value2() const {return next_.value1(); }
&lt;br&gt;&amp;gt; &amp;nbsp; value3_type&amp; value3() const {return next_.value2(); }
&lt;br&gt;&amp;gt; &amp;nbsp; next_type &amp;next() const {return const_cast&amp;lt;next_type&amp;&amp;gt;(next_); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; private:
&lt;br&gt;&amp;gt; &amp;nbsp; value1_type&amp; value_;
&lt;br&gt;&amp;gt; &amp;nbsp; next_type &amp;nbsp; &amp;nbsp;next_;
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; /* What does a variodic_function require?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;class myfunc_implementation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;public:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 1) This indicates the result if called with 0 arguments
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;typedef void result_type;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 2) This indicates the type when multople arguments are called
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; This can have specialization if the type is variable
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;template &amp;lt;typename var_args&amp;gt; struct deduce_result_type { typedef void typ
&lt;br&gt;&amp;gt; e; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 3) This is the front end for the call
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// specialize this for different number of arguments
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;template &amp;lt;typename var_args&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;deduce_result_type&amp;lt;V&amp;gt;::type execute(const var_args&amp; v);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;// 4) we create a concrete type instance
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;// &amp;nbsp; (often the instance will be in a file and thus external in the header)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;extern variodic_function&amp;lt;myfunc_implementation&amp;gt; myfunc;
&lt;br&gt;&amp;gt; */
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template&amp;lt;class T_f&amp;gt;
&lt;br&gt;&amp;gt; struct variodic_function {
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::result_type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()();
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; // we can keep the const for a few layers
&lt;br&gt;&amp;gt; &amp;nbsp; // 2 required
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic1&amp;lt;T1&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(T1&amp; t1)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic1&amp;lt;T1&amp;gt;(t1)); }
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic1&amp;lt;T1&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(const T1&amp; t1)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic1&amp;lt;const T1&amp;gt;(t1)); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; // 2^2=4 required
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(T1&amp; t1, T2&amp; t2)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic2&amp;lt;T1,T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(T1&amp; t1, const T2&amp; t2)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic2&amp;lt;T1,const T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(const T1&amp; t1, T2&amp; t2)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic2&amp;lt;const T1,T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(const T1&amp; t1, const T2&amp; t2)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic2&amp;lt;const T1,const T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; // But eventually it just doesn't work as we would need too many templates
&lt;br&gt;&amp;gt; &amp;nbsp; // this hack works, but has the downside that type deduction may be a problem 
&lt;br&gt;&amp;gt; &amp;nbsp; // and overloading &amp;nbsp;of foo(int, char, const string&amp;) and foo(int, char, T&amp;) would always
&lt;br&gt;&amp;gt; &amp;nbsp; // chose the latter (though this type of overload is fairly bad practice) 
&lt;br&gt;&amp;gt; &amp;nbsp; template&amp;lt;class T1, class T2, class T3&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic3&amp;lt;T1,T2,T3&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;gt; &amp;nbsp; operator()(const T1&amp; t1, const T2&amp; t2, const T3&amp; t3)
&lt;br&gt;&amp;gt; &amp;nbsp; { return func_.execute(variodic3&amp;lt;T1,T2,T3&amp;gt;(const_cast&amp;lt;T1&amp;&amp;gt;(t1),const_cast&amp;lt;T2&amp;&amp;gt;
&lt;br&gt;&amp;gt; (t2),const_cast&amp;lt;T3&amp;&amp;gt;(t3))); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; private:
&lt;br&gt;&amp;gt; &amp;nbsp; T_f func_;
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template&amp;lt;class T_f&amp;gt;
&lt;br&gt;&amp;gt; typename T_f::result_type variodic_function&amp;lt;T_f&amp;gt;::operator()()
&lt;br&gt;&amp;gt; { return func_.execute(variodic0()); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; // Use this if the implementation returns the same thing regardless
&lt;br&gt;&amp;gt; template &amp;lt;class T_R&amp;gt;
&lt;br&gt;&amp;gt; struct variodic_implementation_returns
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; typedef T_R result_type;
&lt;br&gt;&amp;gt; &amp;nbsp; template &amp;lt;class T_V&amp;gt; struct deduce_result_type { typedef T_R type; };
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; /***********************************/
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; // Test the variodic functionality
&lt;br&gt;&amp;gt; // &amp;nbsp;(idea shamelessly stolen from the variodic template example in new standard)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; struct qprintf_t : public variodic_implementation_returns&amp;lt;void&amp;gt;
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; // variodic function require this method
&lt;br&gt;&amp;gt; &amp;nbsp; template &amp;lt;class var&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; void execute(const var&amp; v)
&lt;br&gt;&amp;gt; &amp;nbsp; { do_work(v.value(), v.next()); }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; // actual method
&lt;br&gt;&amp;gt; &amp;nbsp; template &amp;lt;class var&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; void do_work(const char* s, var&amp; v);
&lt;br&gt;&amp;gt; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class var&amp;gt;
&lt;br&gt;&amp;gt; void qprintf_t::do_work(const char *s, var&amp; v)
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; while (*s)
&lt;br&gt;&amp;gt; &amp;nbsp; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; if (*s=='%' &amp;&amp; *(++s)!='%')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; v.value() ;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; do_work(*s?++s: s, v.next());
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; *s++;
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; &amp;nbsp; throw int(); // too many arguments
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; // specialization when we run out of arguments
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt;
&lt;br&gt;&amp;gt; void qprintf_t::do_work&amp;lt;variodic0&amp;gt;(const char *s, variodic0&amp; v)
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; &amp;nbsp; while (*s)
&lt;br&gt;&amp;gt; &amp;nbsp; {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; if (*s=='%' &amp;&amp; *(++s)!='%')
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw int(); // too few arguments
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; *s++;
&lt;br&gt;&amp;gt; &amp;nbsp; }
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; variodic_function&amp;lt;qprintf_t&amp;gt; qprintf;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; =============================================
&lt;br&gt;&amp;gt; arithmetic_h:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; #ifndef _CHECK_ARITHMETIC_H__
&lt;br&gt;&amp;gt; #define _CHECK_ARITHMETIC_H__
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; static const int bool_code=0;
&lt;br&gt;&amp;gt; static const int char_code=1;
&lt;br&gt;&amp;gt; static const int uchar_code=1;
&lt;br&gt;&amp;gt; static const int short_code=2;
&lt;br&gt;&amp;gt; static const int ushort_code=2;
&lt;br&gt;&amp;gt; static const int int_code=3;
&lt;br&gt;&amp;gt; static const int uint_code=3;
&lt;br&gt;&amp;gt; static const int long_code=4;
&lt;br&gt;&amp;gt; static const int ulong_code=4;
&lt;br&gt;&amp;gt; static const int float_code=5;
&lt;br&gt;&amp;gt; static const int double_code=6;
&lt;br&gt;&amp;gt; static const int other_code=7;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T&amp;gt; struct promotion_classify { static const int type_code=other_code; };
&lt;br&gt;&amp;gt; template &amp;lt;class T&amp;gt; struct promotion_classify&amp;lt; const T&amp;gt; : public promotion_classify&amp;lt;T&amp;gt; {};
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;bool&amp;gt; { static const int type_code=bool_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;char&amp;gt; { static const int type_code=char_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned char&amp;gt; { static const int type_code=uchar_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;short&amp;gt; { static const int type_code=short_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned short&amp;gt; { static const int type_code=ushort_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;int&amp;gt; { static const int type_code=int_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned int&amp;gt; { static const int type_code=uint_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;long&amp;gt; { static const int type_code=long_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned long&amp;gt; { static const int type_code=ulong_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;float&amp;gt; { static const int type_code=float_code; };
&lt;br&gt;&amp;gt; template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;double&amp;gt; { static const int type_code=double_code; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; // determine presidence
&lt;br&gt;&amp;gt; template &amp;lt;class T1,bool, bool&amp;gt; struct arithmetic_promote_check
&lt;br&gt;&amp;gt; { typedef T1 result_type; };
&lt;br&gt;&amp;gt; template &amp;lt;class T1&amp;gt; struct arithmetic_promote_check&amp;lt;T1,true,false&amp;gt;
&lt;br&gt;&amp;gt; { typedef int result_type; };
&lt;br&gt;&amp;gt; template &amp;lt;class T1&amp;gt; struct arithmetic_promote_check&amp;lt;T1,false,true&amp;gt;
&lt;br&gt;&amp;gt; { typedef long int result_type; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T1&amp;gt; struct arithmetic_promote
&lt;br&gt;&amp;gt; { typedef typename arithmetic_promote_check&amp;lt;T1,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; (promotion_classify&amp;lt;T1&amp;gt;::type_code&amp;lt;int_code),
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; (promotion_classify&amp;lt;T1&amp;gt;::type_code==int_code)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;gt;::result_type result_type; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T1, class T2, bool&amp;gt; struct arithmetic_presidence_check
&lt;br&gt;&amp;gt; { typedef typename arithmetic_promote&amp;lt;T1&amp;gt;::result_type result_type; };
&lt;br&gt;&amp;gt; template &amp;lt;class T1, class T2&amp;gt; struct arithmetic_presidence_check&amp;lt;T1,T2,false&amp;gt;
&lt;br&gt;&amp;gt; { typedef typename arithmetic_promote&amp;lt;T2&amp;gt;::result_type result_type; };
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; template &amp;lt;class T1, class T2&amp;gt; struct arithmetic_presidence
&lt;br&gt;&amp;gt; { typedef typename arithmetic_presidence_check&amp;lt; T1, T2,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; (promotion_classify&amp;lt;T1&amp;gt;::type_code&amp;gt;promotion_classify&amp;lt;T2&amp;gt;::type_code) &amp;gt;::result_type result_type;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; #endif
&lt;br&gt;&amp;gt; _______________________________________________
&lt;br&gt;&amp;gt; libsigc-list mailing list
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21250497&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;/div&gt;-- 
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21250497&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;
&lt;br&gt;www.murrayc.com
&lt;br&gt;www.openismus.com
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21250497&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fixing-lambda-bugs-tp20968896p21250497.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21228238</id>
	<title>Re: Fixing lambda bugs</title>
	<published>2008-12-30T23:26:58Z</published>
	<updated>2008-12-30T23:26:58Z</updated>
	<author>
		<name>kenelson8</name>
	</author>
	<content type="html">Murray,
&lt;br&gt;&lt;br&gt;The key problem is the usual problem with references and const references.
&lt;br&gt;Although I and probably a few others have suggested adding a template 
&lt;br&gt;pattern to pass arguments through as reference without forcing a type check
&lt;br&gt;(ie. &amp;nbsp;template &amp;lt;class &amp;T&amp;gt; void foo(T t) {} &amp;nbsp;where T will be any reference, const
&lt;br&gt;reference, volitile const reference, etc.), it was summarily rejected. &amp;nbsp;However, 
&lt;br&gt;recently I looked through the proposed changes for the next version. &amp;nbsp;
&lt;br&gt;Still no action as far as I can see. &amp;nbsp;However, one of changes did inspire me to 
&lt;br&gt;update my print format class which got me working on the problem again. &amp;nbsp;That
&lt;br&gt;was that I could use a variodic template pattern. &amp;nbsp; As part of that work I built a 
&lt;br&gt;wrapper to work around the problem. &amp;nbsp;
&lt;br&gt;&lt;br&gt;I have two options that can fix the defect with argument copying, some of the 
&lt;br&gt;operator returns not promoting properly, and improper function of equality operators. &amp;nbsp;
&lt;br&gt;1) Apply the same pattern in my variodic template library to this problem. &amp;nbsp;
&lt;br&gt;2) Convert the lambda library to use the variodic template library. &amp;nbsp;
&lt;br&gt;&lt;br&gt;In either case the outward library interface should have no changes what-so-ever.
&lt;br&gt;However, the second option will gut the library entirely. &amp;nbsp;I am slightly more interested
&lt;br&gt;in the second than the first in that I don't remember (or perhaps there have been 
&lt;br&gt;patches applied) such that figuring out where to perform the surgery for option 1 will
&lt;br&gt;take a while. &amp;nbsp;Then again option 2 may have similar problems. &amp;nbsp;
&lt;br&gt;&lt;br&gt;In either case if I cut too deeply in the internals it will break users that wrote a function
&lt;br&gt;that a lambda without a closure (a very bad idea) or a user that wrote their own internal
&lt;br&gt;to use lambda (some of the extension libraries may have done something like this). &amp;nbsp;
&lt;br&gt;&lt;br&gt;To give you a better idea which way may be best I have inclosed a sample for the 
&lt;br&gt;variodic template library so that this isn't quite so cryptic. &amp;nbsp;Significant differences would
&lt;br&gt;be that variodic functions use execute to avoid that sun bug with operator() and lambda
&lt;br&gt;would get variodic_function&amp;lt;T_func&amp;gt; as a base class.
&lt;br&gt;&lt;br&gt;The type promotion I have working in practice, but I will need to plan how to 
&lt;br&gt;apply it current lambda library. &amp;nbsp;I have also attached a sample of that. &amp;nbsp;This one may have
&lt;br&gt;architecture issues as int*int is not actually an int but may be a int64_t so there are 
&lt;br&gt;a fair number of edge cases to consider. &amp;nbsp;
&lt;br&gt;&lt;br&gt;Does this help clarify?
&lt;br&gt;&lt;br&gt;--Karl
&lt;br&gt;&lt;br&gt;&amp;nbsp;-------------- Original message ----------------------
&lt;br&gt;From: Murray Cumming &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21228238&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;murrayc@...&lt;/a&gt;&amp;gt;
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Fri, 2008-12-12 at 02:28 +0000, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21228238&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kenelson8@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hello all,
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; I see there are some outstanding bugs in the lambda section. &amp;nbsp;I think that I 
&lt;br&gt;&amp;gt; &amp;gt; can fix some of them along with some of the FIXME sections, however, I 
&lt;br&gt;&amp;gt; &amp;gt; am concerned with the level of changes that may be required. &amp;nbsp;Is anyone
&lt;br&gt;&amp;gt; &amp;gt; using the lambda?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Probably, yes.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; Also is anyone connecting into the internal classes which
&lt;br&gt;&amp;gt; &amp;gt; will likely get broken by a big change?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Can you be more specific? Then we can judge what a change there would
&lt;br&gt;&amp;gt; affect. If it's obviously a private internal thing then there's no
&lt;br&gt;&amp;gt; problem with breaking it.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Murray.
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;=======================================================
&lt;br&gt;&lt;br&gt;#include &amp;lt;iostream&amp;gt;
&lt;br&gt;&lt;br&gt;struct variodic0
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; typedef variodic0 next_type;
&lt;br&gt;&amp;nbsp; typedef void value1_type;
&lt;br&gt;&amp;nbsp; next_type&amp; next() { return *this; }
&lt;br&gt;};
&lt;br&gt;variodic0 variodic0_instance; 
&lt;br&gt;&lt;br&gt;template &amp;lt;class T1&amp;gt;
&lt;br&gt;struct variodic1 {
&lt;br&gt;&amp;nbsp; typedef variodic0 next_type;
&lt;br&gt;&amp;nbsp; typedef T1 value1_type;
&lt;br&gt;&amp;nbsp; variodic1(value1_type&amp; p1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; : value_(p1) {}
&lt;br&gt;&amp;nbsp; value1_type&amp; value() const {return value_; }
&lt;br&gt;&amp;nbsp; value1_type&amp; value1() const { return value_ ;}
&lt;br&gt;&amp;nbsp; next_type&amp; next() const { return variodic0_instance; }
&lt;br&gt;private:
&lt;br&gt;&amp;nbsp; value1_type&amp; value_;
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;template &amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;struct variodic2 {
&lt;br&gt;&amp;nbsp; typedef variodic1&amp;lt;T2&amp;gt; next_type;
&lt;br&gt;&amp;nbsp; typedef T1 value1_type;
&lt;br&gt;&amp;nbsp; typedef T2 value2_type;
&lt;br&gt;&amp;nbsp; variodic2(T1&amp; p1, T2&amp; p2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; : value_(p1), next_(p2){}
&lt;br&gt;&amp;nbsp; value1_type&amp; value() const {return value_; }
&lt;br&gt;&amp;nbsp; value1_type&amp; value1() const {return value_; }
&lt;br&gt;&amp;nbsp; value2_type&amp; value2() const {return next_.value1(); }
&lt;br&gt;&amp;nbsp; next_type &amp;next() const {return const_cast&amp;lt;next_type&amp;&amp;gt;(next_); }
&lt;br&gt;&lt;br&gt;private:
&lt;br&gt;&amp;nbsp; value1_type&amp; value_;
&lt;br&gt;&amp;nbsp; next_type &amp;nbsp; &amp;nbsp;next_;
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;template &amp;lt;class T1, class T2, class T3&amp;gt;
&lt;br&gt;struct variodic3 {
&lt;br&gt;&amp;nbsp; typedef variodic2&amp;lt;T2,T3&amp;gt; next_type;
&lt;br&gt;&amp;nbsp; typedef T1 value1_type;
&lt;br&gt;&amp;nbsp; typedef T2 value2_type;
&lt;br&gt;&amp;nbsp; typedef T3 value3_type;
&lt;br&gt;&lt;br&gt;&amp;nbsp; variodic3(T1&amp; p1, T2&amp; p2, T3&amp; p3)
&lt;br&gt;&amp;nbsp; &amp;nbsp; : value_(p1), next_(p2,p3){}
&lt;br&gt;&amp;nbsp; value1_type&amp; value() const {return value_; }
&lt;br&gt;&amp;nbsp; value1_type&amp; value1() const {return value_; }
&lt;br&gt;&amp;nbsp; value2_type&amp; value2() const {return next_.value1(); }
&lt;br&gt;&amp;nbsp; value3_type&amp; value3() const {return next_.value2(); }
&lt;br&gt;&amp;nbsp; next_type &amp;next() const {return const_cast&amp;lt;next_type&amp;&amp;gt;(next_); }
&lt;br&gt;&lt;br&gt;private:
&lt;br&gt;&amp;nbsp; value1_type&amp; value_;
&lt;br&gt;&amp;nbsp; next_type &amp;nbsp; &amp;nbsp;next_;
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;/* What does a variodic_function require?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;class myfunc_implementation
&lt;br&gt;&amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 1) This indicates the result if called with 0 arguments
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;typedef void result_type;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 2) This indicates the type when multople arguments are called
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;nbsp; This can have specialization if the type is variable
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;template &amp;lt;typename var_args&amp;gt; struct deduce_result_type { typedef void typ
&lt;br&gt;e; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 3) This is the front end for the call
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// specialize this for different number of arguments
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;template &amp;lt;typename var_args&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;deduce_result_type&amp;lt;V&amp;gt;::type execute(const var_args&amp; v);
&lt;br&gt;&amp;nbsp; &amp;nbsp;};
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;// 4) we create a concrete type instance
&lt;br&gt;&amp;nbsp; &amp;nbsp;// &amp;nbsp; (often the instance will be in a file and thus external in the header)
&lt;br&gt;&amp;nbsp; &amp;nbsp;extern variodic_function&amp;lt;myfunc_implementation&amp;gt; myfunc;
&lt;br&gt;*/
&lt;br&gt;&lt;br&gt;template&amp;lt;class T_f&amp;gt;
&lt;br&gt;struct variodic_function {
&lt;br&gt;&amp;nbsp; typename T_f::result_type
&lt;br&gt;&amp;nbsp; operator()();
&lt;br&gt;&lt;br&gt;&amp;nbsp; // we can keep the const for a few layers
&lt;br&gt;&amp;nbsp; // 2 required
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic1&amp;lt;T1&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(T1&amp; t1)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic1&amp;lt;T1&amp;gt;(t1)); }
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic1&amp;lt;T1&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(const T1&amp; t1)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic1&amp;lt;const T1&amp;gt;(t1)); }
&lt;br&gt;&lt;br&gt;&amp;nbsp; // 2^2=4 required
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(T1&amp; t1, T2&amp; t2)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic2&amp;lt;T1,T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(T1&amp; t1, const T2&amp; t2)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic2&amp;lt;T1,const T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(const T1&amp; t1, T2&amp; t2)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic2&amp;lt;const T1,T2&amp;gt;(t1,t2)); }
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1, class T2&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic2&amp;lt;T1,T2&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(const T1&amp; t1, const T2&amp; t2)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic2&amp;lt;const T1,const T2&amp;gt;(t1,t2)); }
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; // But eventually it just doesn't work as we would need too many templates
&lt;br&gt;&amp;nbsp; // this hack works, but has the downside that type deduction may be a problem 
&lt;br&gt;&amp;nbsp; // and overloading &amp;nbsp;of foo(int, char, const string&amp;) and foo(int, char, T&amp;) would always
&lt;br&gt;&amp;nbsp; // chose the latter (though this type of overload is fairly bad practice) 
&lt;br&gt;&amp;nbsp; template&amp;lt;class T1, class T2, class T3&amp;gt;
&lt;br&gt;&amp;nbsp; typename T_f::template deduce_result_type&amp;lt;variodic3&amp;lt;T1,T2,T3&amp;gt; &amp;gt;::type
&lt;br&gt;&amp;nbsp; operator()(const T1&amp; t1, const T2&amp; t2, const T3&amp; t3)
&lt;br&gt;&amp;nbsp; { return func_.execute(variodic3&amp;lt;T1,T2,T3&amp;gt;(const_cast&amp;lt;T1&amp;&amp;gt;(t1),const_cast&amp;lt;T2&amp;&amp;gt;
&lt;br&gt;(t2),const_cast&amp;lt;T3&amp;&amp;gt;(t3))); }
&lt;br&gt;&lt;br&gt;private:
&lt;br&gt;&amp;nbsp; T_f func_;
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;template&amp;lt;class T_f&amp;gt;
&lt;br&gt;typename T_f::result_type variodic_function&amp;lt;T_f&amp;gt;::operator()()
&lt;br&gt;{ return func_.execute(variodic0()); }
&lt;br&gt;&lt;br&gt;// Use this if the implementation returns the same thing regardless
&lt;br&gt;template &amp;lt;class T_R&amp;gt;
&lt;br&gt;struct variodic_implementation_returns
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; typedef T_R result_type;
&lt;br&gt;&amp;nbsp; template &amp;lt;class T_V&amp;gt; struct deduce_result_type { typedef T_R type; };
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;&lt;br&gt;/***********************************/
&lt;br&gt;&lt;br&gt;// Test the variodic functionality
&lt;br&gt;// &amp;nbsp;(idea shamelessly stolen from the variodic template example in new standard)
&lt;br&gt;&lt;br&gt;struct qprintf_t : public variodic_implementation_returns&amp;lt;void&amp;gt;
&lt;br&gt;{
&lt;br&gt;&lt;br&gt;&amp;nbsp; // variodic function require this method
&lt;br&gt;&amp;nbsp; template &amp;lt;class var&amp;gt;
&lt;br&gt;&amp;nbsp; void execute(const var&amp; v)
&lt;br&gt;&amp;nbsp; { do_work(v.value(), v.next()); }
&lt;br&gt;&lt;br&gt;&amp;nbsp; // actual method
&lt;br&gt;&amp;nbsp; template &amp;lt;class var&amp;gt;
&lt;br&gt;&amp;nbsp; void do_work(const char* s, var&amp; v);
&lt;br&gt;};
&lt;br&gt;&lt;br&gt;&lt;br&gt;template &amp;lt;class var&amp;gt;
&lt;br&gt;void qprintf_t::do_work(const char *s, var&amp; v)
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; while (*s)
&lt;br&gt;&amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (*s=='%' &amp;&amp; *(++s)!='%')
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; v.value() ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; do_work(*s?++s: s, v.next());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; *s++;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;&amp;nbsp; throw int(); // too many arguments
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;// specialization when we run out of arguments
&lt;br&gt;template &amp;lt;&amp;gt;
&lt;br&gt;void qprintf_t::do_work&amp;lt;variodic0&amp;gt;(const char *s, variodic0&amp; v)
&lt;br&gt;{
&lt;br&gt;&amp;nbsp; while (*s)
&lt;br&gt;&amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (*s=='%' &amp;&amp; *(++s)!='%')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; throw int(); // too few arguments
&lt;br&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; *s++;
&lt;br&gt;&amp;nbsp; }
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;variodic_function&amp;lt;qprintf_t&amp;gt; qprintf;
&lt;br&gt;&lt;br&gt;&lt;br&gt;=============================================
&lt;br&gt;arithmetic_h:
&lt;br&gt;&lt;br&gt;#ifndef _CHECK_ARITHMETIC_H__
&lt;br&gt;#define _CHECK_ARITHMETIC_H__
&lt;br&gt;&lt;br&gt;static const int bool_code=0;
&lt;br&gt;static const int char_code=1;
&lt;br&gt;static const int uchar_code=1;
&lt;br&gt;static const int short_code=2;
&lt;br&gt;static const int ushort_code=2;
&lt;br&gt;static const int int_code=3;
&lt;br&gt;static const int uint_code=3;
&lt;br&gt;static const int long_code=4;
&lt;br&gt;static const int ulong_code=4;
&lt;br&gt;static const int float_code=5;
&lt;br&gt;static const int double_code=6;
&lt;br&gt;static const int other_code=7;
&lt;br&gt;&lt;br&gt;template &amp;lt;class T&amp;gt; struct promotion_classify { static const int type_code=other_code; };
&lt;br&gt;template &amp;lt;class T&amp;gt; struct promotion_classify&amp;lt; const T&amp;gt; : public promotion_classify&amp;lt;T&amp;gt; {};
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;bool&amp;gt; { static const int type_code=bool_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;char&amp;gt; { static const int type_code=char_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned char&amp;gt; { static const int type_code=uchar_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;short&amp;gt; { static const int type_code=short_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned short&amp;gt; { static const int type_code=ushort_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;int&amp;gt; { static const int type_code=int_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned int&amp;gt; { static const int type_code=uint_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;long&amp;gt; { static const int type_code=long_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;unsigned long&amp;gt; { static const int type_code=ulong_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;float&amp;gt; { static const int type_code=float_code; };
&lt;br&gt;template &amp;lt;&amp;gt; struct promotion_classify &amp;lt;double&amp;gt; { static const int type_code=double_code; };
&lt;br&gt;&lt;br&gt;// determine presidence
&lt;br&gt;template &amp;lt;class T1,bool, bool&amp;gt; struct arithmetic_promote_check
&lt;br&gt;{ typedef T1 result_type; };
&lt;br&gt;template &amp;lt;class T1&amp;gt; struct arithmetic_promote_check&amp;lt;T1,true,false&amp;gt;
&lt;br&gt;{ typedef int result_type; };
&lt;br&gt;template &amp;lt;class T1&amp;gt; struct arithmetic_promote_check&amp;lt;T1,false,true&amp;gt;
&lt;br&gt;{ typedef long int result_type; };
&lt;br&gt;&lt;br&gt;template &amp;lt;class T1&amp;gt; struct arithmetic_promote
&lt;br&gt;{ typedef typename arithmetic_promote_check&amp;lt;T1,
&lt;br&gt;&amp;nbsp; &amp;nbsp; (promotion_classify&amp;lt;T1&amp;gt;::type_code&amp;lt;int_code),
&lt;br&gt;&amp;nbsp; &amp;nbsp; (promotion_classify&amp;lt;T1&amp;gt;::type_code==int_code)
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;gt;::result_type result_type; };
&lt;br&gt;&lt;br&gt;template &amp;lt;class T1, class T2, bool&amp;gt; struct arithmetic_presidence_check
&lt;br&gt;{ typedef typename arithmetic_promote&amp;lt;T1&amp;gt;::result_type result_type; };
&lt;br&gt;template &amp;lt;class T1, class T2&amp;gt; struct arithmetic_presidence_check&amp;lt;T1,T2,false&amp;gt;
&lt;br&gt;{ typedef typename arithmetic_promote&amp;lt;T2&amp;gt;::result_type result_type; };
&lt;br&gt;&lt;br&gt;template &amp;lt;class T1, class T2&amp;gt; struct arithmetic_presidence
&lt;br&gt;{ typedef typename arithmetic_presidence_check&amp;lt; T1, T2,
&lt;br&gt;&amp;nbsp; &amp;nbsp; (promotion_classify&amp;lt;T1&amp;gt;::type_code&amp;gt;promotion_classify&amp;lt;T2&amp;gt;::type_code) &amp;gt;::result_type result_type;
&lt;br&gt;&lt;br&gt;#endif
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21228238&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fixing-lambda-bugs-tp20968896p21228238.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-21222251</id>
	<title>Re: Fixing lambda bugs</title>
	<published>2008-12-30T11:50:56Z</published>
	<updated>2008-12-30T11:50:56Z</updated>
	<author>
		<name>Murray Cumming</name>
	</author>
	<content type="html">On Fri, 2008-12-12 at 02:28 +0000, &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21222251&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kenelson8@...&lt;/a&gt; wrote:
&lt;br&gt;&amp;gt; Hello all,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I see there are some outstanding bugs in the lambda section. &amp;nbsp;I think that I 
&lt;br&gt;&amp;gt; can fix some of them along with some of the FIXME sections, however, I 
&lt;br&gt;&amp;gt; am concerned with the level of changes that may be required. &amp;nbsp;Is anyone
&lt;br&gt;&amp;gt; using the lambda?
&lt;br&gt;&lt;br&gt;Probably, yes.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp; Also is anyone connecting into the internal classes which
&lt;br&gt;&amp;gt; will likely get broken by a big change?
&lt;br&gt;&lt;br&gt;Can you be more specific? Then we can judge what a change there would
&lt;br&gt;affect. If it's obviously a private internal thing then there's no
&lt;br&gt;problem with breaking it.
&lt;br&gt;&lt;br&gt;Murray.
&lt;br&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=21222251&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fixing-lambda-bugs-tp20968896p21222251.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-20968896</id>
	<title>Fixing lambda bugs</title>
	<published>2008-12-11T18:28:21Z</published>
	<updated>2008-12-11T18:28:21Z</updated>
	<author>
		<name>kenelson8</name>
	</author>
	<content type="html">Hello all,
&lt;br&gt;&lt;br&gt;I see there are some outstanding bugs in the lambda section. &amp;nbsp;I think that I 
&lt;br&gt;can fix some of them along with some of the FIXME sections, however, I 
&lt;br&gt;am concerned with the level of changes that may be required. &amp;nbsp;Is anyone
&lt;br&gt;using the lambda? &amp;nbsp;Also is anyone connecting into the internal classes which
&lt;br&gt;will likely get broken by a big change?
&lt;br&gt;&lt;br&gt;--Karl
&lt;br&gt;_______________________________________________
&lt;br&gt;libsigc-list mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=20968896&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;libsigc-list@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;http://mail.gnome.org/mailman/listinfo/libsigc-list&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail.gnome.org/mailman/listinfo/libsigc-list&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Fixing-lambda-bugs-tp20968896p20968896.html" />
</entry>

</feed>
