<?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[functor als templateparameter]]></title><description><![CDATA[<p>Hallo</p>
<p>ich möchte einer template-Klasse ein functor als parameter übergeben.<br />
Das klappt nicht, mit der Meldung:</p>
<blockquote>
<p>error C2228: Links von &quot;.wait&quot; muss sich eine Klasse/Struktur/Union befinden.</p>
</blockquote>
<p>er erkennt also das objekt nicht. wenn ich als parameter eine freistehende<br />
funktion nehme, klappt aber alles normal.</p>
<pre><code class="language-cpp">template &lt;class func&gt;
class thread
{
public:
     thread(func);
     ~thread();
private:
    func f;    
};

DWORD func()
{
    MessageBoxA(0, 0, 0, 0);
    return 5;
}
int main()
{
    struct str
    {
        DWORD operator () ()
        {
            MessageBoxA(0, 0, 0, 0);
            Sleep(1000);
            return 5;
        }
    };
    thread&lt;DWORD (*)()&gt; t1(func);
    thread&lt;str&gt; t2(str());           
    t1.wait();                       
    t2.wait();                        // &lt;----- error

}
</code></pre>
<p>warum klappt das nicht mit der struct als parameter?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233994/functor-als-templateparameter</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:37:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233994.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Feb 2009 17:05:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to functor als templateparameter on Wed, 11 Feb 2009 17:05:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich möchte einer template-Klasse ein functor als parameter übergeben.<br />
Das klappt nicht, mit der Meldung:</p>
<blockquote>
<p>error C2228: Links von &quot;.wait&quot; muss sich eine Klasse/Struktur/Union befinden.</p>
</blockquote>
<p>er erkennt also das objekt nicht. wenn ich als parameter eine freistehende<br />
funktion nehme, klappt aber alles normal.</p>
<pre><code class="language-cpp">template &lt;class func&gt;
class thread
{
public:
     thread(func);
     ~thread();
private:
    func f;    
};

DWORD func()
{
    MessageBoxA(0, 0, 0, 0);
    return 5;
}
int main()
{
    struct str
    {
        DWORD operator () ()
        {
            MessageBoxA(0, 0, 0, 0);
            Sleep(1000);
            return 5;
        }
    };
    thread&lt;DWORD (*)()&gt; t1(func);
    thread&lt;str&gt; t2(str());           
    t1.wait();                       
    t2.wait();                        // &lt;----- error

}
</code></pre>
<p>warum klappt das nicht mit der struct als parameter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661952</guid><dc:creator><![CDATA[fragezeichen?]]></dc:creator><pubDate>Wed, 11 Feb 2009 17:05:37 GMT</pubDate></item><item><title><![CDATA[Reply to functor als templateparameter on Wed, 11 Feb 2009 17:20:01 GMT]]></title><description><![CDATA[<p>Hi,<br />
zwei Sachen sind fehlerhaft.</p>
<p>1. Templateargumente dürfen keine lokalen Typen sein<br />
2. <strong>thread&lt;str&gt; t2(str());</strong> wird als Funktionsdeklaration angesehen, abhilfe: <strong>thread&lt;str&gt; t2 = str();</strong></p>
<p>Edit: Deine Fehlermeldung bezieht sich auf Fehler Nr. 2, ersteres juckt ihn vermutlich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661961</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 11 Feb 2009 17:20:01 GMT</pubDate></item><item><title><![CDATA[Reply to functor als templateparameter on Wed, 11 Feb 2009 19:06:50 GMT]]></title><description><![CDATA[<p>Danach wird er meckern, weil er wait() nicht kennt..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1662051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1662051</guid><dc:creator><![CDATA[Fabeltier]]></dc:creator><pubDate>Wed, 11 Feb 2009 19:06:50 GMT</pubDate></item></channel></rss>