<?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[Funktion als Templatevariable]]></title><description><![CDATA[<p>Hallo, kann ich eine Funktion als Template-Variable mitgeben? Meine Idee wäre so, aber das scheint mi kein valides C++ zu sein:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

class Test {
    private:
        std::string test;

    public:
        Test( const std::string&amp; test )
            : test( test ) {
        }

        std::string getString() {
            return test;
        }
};

template&lt;typename A&gt;
std::string queryString( const Test&amp; x ) {
    return A( x );
}

int main( int argc, char *argv[]) {
    Test a( &quot;hallo&quot; ), b( &quot;welt&quot; );

    std::cout &lt;&lt; queryString&lt;Test::getString&gt;( a )
        &lt;&lt; &quot; &quot;
        &lt;&lt; queryString&lt;Test::getString&gt;( b )
        &lt;&lt; std::endl;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/233081/funktion-als-templatevariable</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 02:31:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233081.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 31 Jan 2009 12:27:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion als Templatevariable on Sat, 31 Jan 2009 12:27:13 GMT]]></title><description><![CDATA[<p>Hallo, kann ich eine Funktion als Template-Variable mitgeben? Meine Idee wäre so, aber das scheint mi kein valides C++ zu sein:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

class Test {
    private:
        std::string test;

    public:
        Test( const std::string&amp; test )
            : test( test ) {
        }

        std::string getString() {
            return test;
        }
};

template&lt;typename A&gt;
std::string queryString( const Test&amp; x ) {
    return A( x );
}

int main( int argc, char *argv[]) {
    Test a( &quot;hallo&quot; ), b( &quot;welt&quot; );

    std::cout &lt;&lt; queryString&lt;Test::getString&gt;( a )
        &lt;&lt; &quot; &quot;
        &lt;&lt; queryString&lt;Test::getString&gt;( b )
        &lt;&lt; std::endl;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1655447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1655447</guid><dc:creator><![CDATA[oliver-abc]]></dc:creator><pubDate>Sat, 31 Jan 2009 12:27:13 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion als Templatevariable on Sat, 31 Jan 2009 12:40:11 GMT]]></title><description><![CDATA[<p>AH, ich glaub ich habs...</p>
<pre><code class="language-cpp">...

typedef std::string (Test::*TestFunction)();

template&lt;TestFunction A&gt;
std::string queryString( Test&amp; x ) {
    return (x.*A)();
}

int main( int argc, char *argv[]) {
    Test a( &quot;hallo&quot; ), b( &quot;welt&quot; );

    std::cout &lt;&lt; queryString&lt;&amp;Test::getString&gt;( a )
        &lt;&lt; &quot; &quot;
        &lt;&lt; queryString&lt;&amp;Test::getString&gt;( b )
        &lt;&lt; std::endl;

    return 0;
}
</code></pre>
<p>Kann mir jemand sagen ob das so korrekt ist, oder ob das nur zufällig funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1655456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1655456</guid><dc:creator><![CDATA[oliver-abc]]></dc:creator><pubDate>Sat, 31 Jan 2009 12:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion als Templatevariable on Sat, 31 Jan 2009 12:43:27 GMT]]></title><description><![CDATA[<p>oliver-abc schrieb:</p>
<blockquote>
<p>AH, ich glaub ich habs...</p>
<pre><code class="language-cpp">...

typedef std::string (Test::*TestFunction)();

template&lt;TestFunction A&gt;
std::string queryString( Test&amp; x ) {
    return (x.*A)();
}

int main( int argc, char *argv[]) {
    Test a( &quot;hallo&quot; ), b( &quot;welt&quot; );
    
    std::cout &lt;&lt; queryString&lt;&amp;Test::getString&gt;( a )
        &lt;&lt; &quot; &quot;
        &lt;&lt; queryString&lt;&amp;Test::getString&gt;( b )
        &lt;&lt; std::endl;
    
    return 0;
}
</code></pre>
<p>Kann mir jemand sagen ob das so korrekt ist, oder ob das nur zufällig funktioniert?</p>
</blockquote>
<p>Es sieht auf den ersten Blick korrekt aus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1655459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1655459</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sat, 31 Jan 2009 12:43:27 GMT</pubDate></item></channel></rss>