<?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[std::vector aus Funktionspointern: wo hängts?!]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Kein Problem liegt vor, nur einer formale Frage:</p>
<p>Warum geht das hier:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

class window { 

	// &quot;Prototyp&quot; eines Callbacks für Events eines Fensters jeglicher Art
	bool (*dummy)(window*,UINT,WPARAM,LPARAM);
	// Nun den Vektor aus Funktionspointern
	std::vector&lt; decltype(dummy) &gt; m_vector;

};
</code></pre>
<p>ABER das nicht:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

class window { 

	// Nun den Vektor aus Funktionspointern
	std::vector&lt; (bool (*dummy)(window*,UINT,WPARAM,LPARAM)) &gt; m_vector;

};
</code></pre>
<p>Microsoft Visual Studio 2010 Express meckert bei der ersten runden Klammer: &quot;Error: Es wurde ein Typspezifizierer erwartet&quot;</p>
<p>Genereller Bug in MSVC oder ein Denkfehler von mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ?</p>
<p>Mit freundlichen Grüßen:<br />
Johannes Schneider</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307133/std-vector-aus-funktionspointern-wo-hängts</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 07:36:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307133.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Aug 2012 16:29:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 16:30:34 GMT]]></title><description><![CDATA[<p>Hallo zusammen.<br />
Kein Problem liegt vor, nur einer formale Frage:</p>
<p>Warum geht das hier:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

class window { 

	// &quot;Prototyp&quot; eines Callbacks für Events eines Fensters jeglicher Art
	bool (*dummy)(window*,UINT,WPARAM,LPARAM);
	// Nun den Vektor aus Funktionspointern
	std::vector&lt; decltype(dummy) &gt; m_vector;

};
</code></pre>
<p>ABER das nicht:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

class window { 

	// Nun den Vektor aus Funktionspointern
	std::vector&lt; (bool (*dummy)(window*,UINT,WPARAM,LPARAM)) &gt; m_vector;

};
</code></pre>
<p>Microsoft Visual Studio 2010 Express meckert bei der ersten runden Klammer: &quot;Error: Es wurde ein Typspezifizierer erwartet&quot;</p>
<p>Genereller Bug in MSVC oder ein Denkfehler von mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ?</p>
<p>Mit freundlichen Grüßen:<br />
Johannes Schneider</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242905</guid><dc:creator><![CDATA[Johannes Schneider]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:30:34 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 16:35:05 GMT]]></title><description><![CDATA[<p>1. dummy ist ein unbekannter Bezeichner.<br />
2. Typen dürfne nicht mit () umschlossen werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242907</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:35:05 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 16:42:03 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool (*dummy)(window*,UINT,WPARAM,LPARAM);
</code></pre>
<p>Du hast eine Variable namens dummy, die ein Zeiger auf eine Funktion ist, die bool zurückgibt und die Parameter vom Typ window*, ..., LPARAM entgegennimmt.</p>
<pre><code class="language-cpp">std::vector&lt; (bool (*dummy)(window*,UINT,WPARAM,LPARAM)) &gt; m_vector;
</code></pre>
<p>Hier hast du einen vector bestehend aus einer Variable namens dummy, die ... etc.etc.etc.</p>
<p>Du möchtest keinen Vektor aus Variablen, sondern aus Funktionszeigern. Also lass den Namen weg, dann hast du den reinen Typ:</p>
<pre><code class="language-cpp">std::vector&lt; (bool (*)(window*,UINT,WPARAM,LPARAM)) &gt; m_vector;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2242909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242909</guid><dc:creator><![CDATA[cdecl]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 16:42:57 GMT]]></title><description><![CDATA[<p>Alles klar!</p>
<p>Hier der Vollständigkeit halber noch die richtige Version:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

class window { 

	public:

		// Nun den Vektor aus Funktionspointern
		std::vector&lt; bool(window*,UINT,WPARAM,LPARAM) &gt; m_vector;

};
</code></pre>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242910</guid><dc:creator><![CDATA[Johannes Schneider]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 16:44:08 GMT]]></title><description><![CDATA[<p>Ist das jetzt nicht ein Vektor basierend auf dem Funktionstyp (nicht Funktionszeiger-Typ?). Willst Du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242911</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:44:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 17:38:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;bool (*)(window*,UINT,WPARAM,LPARAM)&gt; m_vector;
</code></pre>
<p>So sollte es gehen. Der Grund ist einfach: Du schreibst ja auch nicht</p>
<pre><code class="language-cpp">std::vector&lt;int i&gt; m_vector;
</code></pre>
<p>schöner ist es übrigens so:</p>
<pre><code class="language-cpp">typedef bool (*funcPtr)(window*,UINT,WPARAM,LPARAM);
std::vector&lt;funcPtr&gt; m_vector;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2242926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242926</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Fri, 17 Aug 2012 17:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 18:42:03 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>schöner ist es übrigens so:</p>
<pre><code class="language-cpp">typedef bool (*funcPtr)(window*,UINT,WPARAM,LPARAM);
std::vector&lt;funcPtr&gt; m_vector;
</code></pre>
</blockquote>
<p>Und eigentlich gemeint ist vermutlich <code>std::function</code> oder <code>boost::signal</code> .</p>
<pre><code class="language-cpp">typedef std::function&lt;bool (window*,UINT,WPARAM,LPARAM)&gt; funcPtr;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2242948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242948</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 17 Aug 2012 18:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector aus Funktionspointern: wo hängts?! on Fri, 17 Aug 2012 20:19:30 GMT]]></title><description><![CDATA[<p>Was auch geht ist natürlich <code>std::reference_wrapper</code> (der, genau wie <code>std::function</code> , auch einen Konvertierungsoperator und einen <code>operator()</code> bereitstellt):</p>
<pre><code class="language-cpp">std::vector&lt; std::reference_wrapper&lt; bool (window*,UINT,WPARAM,LPARAM) &gt; &gt; m_vector;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2242975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242975</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 Aug 2012 20:19:30 GMT</pubDate></item></channel></rss>