<?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[Problem mit Loki&#x2F;MultiMethods.h]]></title><description><![CDATA[<p>Ich versuche gerade die MultiMethoden von der Loki-Lib zuverstehen, doch nun scheitere ich an ganz einfachen Sachen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;Loki/MultiMethods.h&gt;

class Base
{
};

class Derived1 : public Base
{
};

class Derived2 : public Base
{
};

class Derived3 : public Base
{
};

void d2d3(Derived2&amp;, Derived3&amp;)
{
    std::cout &lt;&lt; &quot;Hallo Derived2 und Derived3!&quot; &lt;&lt; std::endl;
}

void basic(Base&amp;, Base&amp;)
{
    std::cout &lt;&lt; &quot;Hallo!&quot; &lt;&lt; std::endl;
}

int main()
{
    Base b;
    Derived1 d1;
    Derived2 d2;
    Derived3 d3;
    Loki::BasicDispatcher&lt;Base&gt; d;
    d.Add&lt;Base&amp;, Base&amp;&gt;(basic);
    d.Add&lt;Derived2&amp;, Derived3&amp;&gt;(d2d3); // hier
    d.Go(d2, d3);
}
</code></pre>
<p>Ich bekomme folgenden Fehler:</p>
<pre><code>main1.cpp:38: error: invalid conversion from `void (*)(Derived2&amp;, Derived3&amp;)' to `void (*)(Base&amp;, Base&amp;)'
main1.cpp:38: error:   initializing argument 1 of `void 
Loki::BasicDispatcher&lt;BaseLhs, BaseRhs, ResultType, CallbackType&gt;::Add(CallbackType) [with SomeLhs = Derived2&amp;, SomeRhs = Derived3&amp;,
 BaseLhs = Base, BaseRhs = Base, ResultType = void, CallbackType = void (*)(Base&amp;, Base&amp;)]'
</code></pre>
<p>Was mich sehr ägert ist, dass über die Multimethoden gar nichts in der Doku steht: <a href="http://loki-lib.sourceforge.net/html/classes.html" rel="nofollow">http://loki-lib.sourceforge.net/html/classes.html</a></p>
<p>Woran liegt's?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/152078/problem-mit-loki-multimethods-h</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 20:48:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152078.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Jul 2006 17:39:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Loki&#x2F;MultiMethods.h on Sun, 02 Jul 2006 20:06:34 GMT]]></title><description><![CDATA[<p>Ich versuche gerade die MultiMethoden von der Loki-Lib zuverstehen, doch nun scheitere ich an ganz einfachen Sachen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;Loki/MultiMethods.h&gt;

class Base
{
};

class Derived1 : public Base
{
};

class Derived2 : public Base
{
};

class Derived3 : public Base
{
};

void d2d3(Derived2&amp;, Derived3&amp;)
{
    std::cout &lt;&lt; &quot;Hallo Derived2 und Derived3!&quot; &lt;&lt; std::endl;
}

void basic(Base&amp;, Base&amp;)
{
    std::cout &lt;&lt; &quot;Hallo!&quot; &lt;&lt; std::endl;
}

int main()
{
    Base b;
    Derived1 d1;
    Derived2 d2;
    Derived3 d3;
    Loki::BasicDispatcher&lt;Base&gt; d;
    d.Add&lt;Base&amp;, Base&amp;&gt;(basic);
    d.Add&lt;Derived2&amp;, Derived3&amp;&gt;(d2d3); // hier
    d.Go(d2, d3);
}
</code></pre>
<p>Ich bekomme folgenden Fehler:</p>
<pre><code>main1.cpp:38: error: invalid conversion from `void (*)(Derived2&amp;, Derived3&amp;)' to `void (*)(Base&amp;, Base&amp;)'
main1.cpp:38: error:   initializing argument 1 of `void 
Loki::BasicDispatcher&lt;BaseLhs, BaseRhs, ResultType, CallbackType&gt;::Add(CallbackType) [with SomeLhs = Derived2&amp;, SomeRhs = Derived3&amp;,
 BaseLhs = Base, BaseRhs = Base, ResultType = void, CallbackType = void (*)(Base&amp;, Base&amp;)]'
</code></pre>
<p>Was mich sehr ägert ist, dass über die Multimethoden gar nichts in der Doku steht: <a href="http://loki-lib.sourceforge.net/html/classes.html" rel="nofollow">http://loki-lib.sourceforge.net/html/classes.html</a></p>
<p>Woran liegt's?</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1090278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1090278</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Sun, 02 Jul 2006 20:06:34 GMT</pubDate></item></channel></rss>