<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Fehler mit templates und qt]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich hab mal wieder ein Problem mit templates:</p>
<p>Habe mir ein kleines signal/slot-template geschrieben.<br />
Unter normalen Umständen funktioniert das Ganze prima.<br />
Nun habe ich die Klasse aber in ein qt-Projekt eingebunden und bekomme haufenweise Fehlermeldungen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Ich bin bei diesen vielsagenden Fehlermeldungen mit meinem template-Latain am Ende.<br />
Sieht jemand, ob ich bei der Definition groben Unfug gebaut habe?</p>
<p>Ich bekomme folgende Fehlermeldungen (Ausschnitt)<br />
1&gt;main.cpp<br />
1&gt;MainWindow.cpp<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2146: syntax error : missing ')' before identifier 't'<br />
1&gt; d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(43) : see reference to class template instantiation 'sigslots::t_signal&lt;T&gt;' being compiled<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2146: syntax error : missing ';' before identifier 't'<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2182: 'T' : illegal use of type 'void'<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2059: syntax error : ')'<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int</p>
<pre><code>[cpp]
#ifndef SIGNAL_SLOT_H
#define SIGNAL_SLOT_H

#include &lt;set&gt;

namespace sigslots {

// WARNING: mutex all methods for thread-safety

// forward declaration
template &lt;class T&gt;
class t_slot;

template &lt;class T&gt;
class t_signal {
	friend class t_slot&lt;T&gt;;
public:
	~t_signal()
	{
		for (slot_list::iterator iter = slots.begin();
			iter!=slots.end();
			++iter)
		{
			(*iter)-&gt;signals.erase(this);
		}
	}

	void emit(T t)
	{
		for (slot_list::iterator iter = slots.begin();
			iter!=slots.end();)
		{
			slot_list::iterator next = iter;
			next++;
			(*iter)-&gt;update(t, this);
			iter = next;
		}
	}

protected:
	typedef std::set&lt; t_slot&lt;T&gt;* &gt; slot_list;
	slot_list slots;
};

template &lt;class T&gt;
class t_slot {
	friend class t_signal&lt;T&gt;;
public:
	~t_slot()
	{
		for (signal_list::iterator iter = signals.begin();
			iter!=signals.end();
			++iter)
		{
			(*iter)-&gt;slots.erase(this);
		}
	}

	void bind(t_signal&lt;T&gt;* signal)
	{
		signal-&gt;slots.insert(this);
		signals.insert(signal);
	}
	void unbind(t_signal&lt;T&gt;* signal)
	{
		signal-&gt;slots.erase(this);
		signals.erase(signal);
	}
	virtual void update(T param, t_signal&lt;T&gt;* signal) = 0;

protected:
	typedef std::set&lt; t_signal&lt;T&gt;* &gt; signal_list;
	signal_list signals;
};

}

#endif  // SIGNAL_SLOT_H
[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/242910/fehler-mit-templates-und-qt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 17:12:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242910.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Jun 2009 18:02:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler mit templates und qt on Tue, 09 Jun 2009 18:02:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich hab mal wieder ein Problem mit templates:</p>
<p>Habe mir ein kleines signal/slot-template geschrieben.<br />
Unter normalen Umständen funktioniert das Ganze prima.<br />
Nun habe ich die Klasse aber in ein qt-Projekt eingebunden und bekomme haufenweise Fehlermeldungen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Ich bin bei diesen vielsagenden Fehlermeldungen mit meinem template-Latain am Ende.<br />
Sieht jemand, ob ich bei der Definition groben Unfug gebaut habe?</p>
<p>Ich bekomme folgende Fehlermeldungen (Ausschnitt)<br />
1&gt;main.cpp<br />
1&gt;MainWindow.cpp<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2146: syntax error : missing ')' before identifier 't'<br />
1&gt; d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(43) : see reference to class template instantiation 'sigslots::t_signal&lt;T&gt;' being compiled<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2146: syntax error : missing ';' before identifier 't'<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2182: 'T' : illegal use of type 'void'<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(28) : error C2059: syntax error : ')'<br />
1&gt;d:\prog\projects\qt_sim_skeleton\qt_sim_skeleton\signal_slot.h(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int</p>
<pre><code>[cpp]
#ifndef SIGNAL_SLOT_H
#define SIGNAL_SLOT_H

#include &lt;set&gt;

namespace sigslots {

// WARNING: mutex all methods for thread-safety

// forward declaration
template &lt;class T&gt;
class t_slot;

template &lt;class T&gt;
class t_signal {
	friend class t_slot&lt;T&gt;;
public:
	~t_signal()
	{
		for (slot_list::iterator iter = slots.begin();
			iter!=slots.end();
			++iter)
		{
			(*iter)-&gt;signals.erase(this);
		}
	}

	void emit(T t)
	{
		for (slot_list::iterator iter = slots.begin();
			iter!=slots.end();)
		{
			slot_list::iterator next = iter;
			next++;
			(*iter)-&gt;update(t, this);
			iter = next;
		}
	}

protected:
	typedef std::set&lt; t_slot&lt;T&gt;* &gt; slot_list;
	slot_list slots;
};

template &lt;class T&gt;
class t_slot {
	friend class t_signal&lt;T&gt;;
public:
	~t_slot()
	{
		for (signal_list::iterator iter = signals.begin();
			iter!=signals.end();
			++iter)
		{
			(*iter)-&gt;slots.erase(this);
		}
	}

	void bind(t_signal&lt;T&gt;* signal)
	{
		signal-&gt;slots.insert(this);
		signals.insert(signal);
	}
	void unbind(t_signal&lt;T&gt;* signal)
	{
		signal-&gt;slots.erase(this);
		signals.erase(signal);
	}
	virtual void update(T param, t_signal&lt;T&gt;* signal) = 0;

protected:
	typedef std::set&lt; t_signal&lt;T&gt;* &gt; signal_list;
	signal_list signals;
};

}

#endif  // SIGNAL_SLOT_H
[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1724026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724026</guid><dc:creator><![CDATA[C14]]></dc:creator><pubDate>Tue, 09 Jun 2009 18:02:10 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Tue, 09 Jun 2009 18:30:52 GMT]]></title><description><![CDATA[<p>T Unicode Zeichen, wech damit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724044</guid><dc:creator><![CDATA[Kopf oder Zahl]]></dc:creator><pubDate>Tue, 09 Jun 2009 18:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Tue, 09 Jun 2009 18:51:42 GMT]]></title><description><![CDATA[<p>?<br />
Ne, am T liegt's nicht.<br />
z.B. mit type gibt's die gleichen Fehler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724056</guid><dc:creator><![CDATA[C14]]></dc:creator><pubDate>Tue, 09 Jun 2009 18:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Tue, 09 Jun 2009 18:57:30 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-18363.html" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724061</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 09 Jun 2009 18:57:30 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Tue, 09 Jun 2009 22:53:55 GMT]]></title><description><![CDATA[<p>post die datei mal 1:1 oder berichtige auch die fehlermeldungen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724197</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 09 Jun 2009 22:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Wed, 10 Jun 2009 08:25:52 GMT]]></title><description><![CDATA[<p>slots emit signals SIGNAL und SLOT sind in der QT Bibliothek Makros. Die werden für die QT eigenen Signals und Slots verwendet. Wenn Du also irgendo darüber einen QT-Header einbindest, werden die Makros Deinen Code zerstören.</p>
<p>Dietrich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724307</guid><dc:creator><![CDATA[Didi@work]]></dc:creator><pubDate>Wed, 10 Jun 2009 08:25:52 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Wed, 10 Jun 2009 14:33:48 GMT]]></title><description><![CDATA[<p>ok, vielen Dank für die Antwort!<br />
Verdammte qt Makros, da helfen nicht mal Namensräume <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724582</guid><dc:creator><![CDATA[C14]]></dc:creator><pubDate>Wed, 10 Jun 2009 14:33:48 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit templates und qt on Wed, 10 Jun 2009 14:35:25 GMT]]></title><description><![CDATA[<p>Es hilft aber, seine eigenen Bezeichner spezifischer zu wählen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724584</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 10 Jun 2009 14:35:25 GMT</pubDate></item></channel></rss>