<?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[Policy Design Pattern mit &amp;quot;Querverbindungen&amp;quot;]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>beispielhaft folgender Code:</p>
<pre><code>class inputPolicyThatUsesBoost
{
public:
  boost::something data() { return wasauchimmer; }
};

class inputPolicyOther
{
public:
  std::map&lt;&gt; data() { return wasauchimmer; }
};

class workPolicyEins
{
public:
  void do_something(/* mist */){};
};

tempate&lt;typename InputPolicy, typename WorkPolicy&gt;
class output {  
  InputPolicy m_input;
  WorkPolicy m_work;
public:
  void output()
  {
    m_work.do_something(m_input.data());
  }
};
</code></pre>
<p>Die InputPolicy hat bei einer Methode evtl. unterschiedliche Rückgabetypen, je nachdem welche Policy ich einsetze, z.B. falls ich mit boost arbeiten kann/darf, oder eben nicht.</p>
<p>Die WorkPolicy nutzt jetzt aber diese Methode data() aus der InputPolicy aufrufen..</p>
<p>Das Problem ist letztendlich dass die beiden Policies sich nicht kennen, aber miteinander arbeiten müssen.</p>
<p>Gibts hierfür auch irgendein pattern oder eine &quot;elegante&quot; Lösung?</p>
<p>Vielen Dank für eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315076/policy-design-pattern-mit-quot-querverbindungen-quot</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 13:56:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315076.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Mar 2013 13:34:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Policy Design Pattern mit &amp;quot;Querverbindungen&amp;quot; on Sat, 23 Mar 2013 13:34:05 GMT]]></title><description><![CDATA[<p>Hi zusammen,</p>
<p>beispielhaft folgender Code:</p>
<pre><code>class inputPolicyThatUsesBoost
{
public:
  boost::something data() { return wasauchimmer; }
};

class inputPolicyOther
{
public:
  std::map&lt;&gt; data() { return wasauchimmer; }
};

class workPolicyEins
{
public:
  void do_something(/* mist */){};
};

tempate&lt;typename InputPolicy, typename WorkPolicy&gt;
class output {  
  InputPolicy m_input;
  WorkPolicy m_work;
public:
  void output()
  {
    m_work.do_something(m_input.data());
  }
};
</code></pre>
<p>Die InputPolicy hat bei einer Methode evtl. unterschiedliche Rückgabetypen, je nachdem welche Policy ich einsetze, z.B. falls ich mit boost arbeiten kann/darf, oder eben nicht.</p>
<p>Die WorkPolicy nutzt jetzt aber diese Methode data() aus der InputPolicy aufrufen..</p>
<p>Das Problem ist letztendlich dass die beiden Policies sich nicht kennen, aber miteinander arbeiten müssen.</p>
<p>Gibts hierfür auch irgendein pattern oder eine &quot;elegante&quot; Lösung?</p>
<p>Vielen Dank für eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2308975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2308975</guid><dc:creator><![CDATA[policypo]]></dc:creator><pubDate>Sat, 23 Mar 2013 13:34:05 GMT</pubDate></item><item><title><![CDATA[Reply to Policy Design Pattern mit &amp;quot;Querverbindungen&amp;quot; on Sat, 23 Mar 2013 13:56:40 GMT]]></title><description><![CDATA[<p>Verstehe ich richtig, dass du den Argumenttyp von workPoliciyEins nicht festlegen kannst, weil die Klasse dafür Infos über inputPolicy brauchen würde?<br />
Dann mache das Argument von do_something() doch einfach zum Template.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2308977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2308977</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 23 Mar 2013 13:56:40 GMT</pubDate></item><item><title><![CDATA[Reply to Policy Design Pattern mit &amp;quot;Querverbindungen&amp;quot; on Sat, 23 Mar 2013 14:35:45 GMT]]></title><description><![CDATA[<p>Offensichtlich ist workPolicy von der inputPolicy abhängig. Was spricht also dagegen, wenn die workPolicy als Template-Parameter die inputPolicy erhält?</p>
<pre><code class="language-cpp">template&lt;class InputPolicy&gt;
class WorkPolicy
{
// ctor muss das InputPolicy-Objekt erhalten oder Du übergibst es nur für den Methodenaufruf
};

template&lt;class InputPolicy, /* entsprechend für die WorkPolicy */&gt;
class output
{
// ...
};
</code></pre>
<p>Template-Template-Parameter sind tricky, weil typename da nicht immer class entspricht (aber die Regeln kenne ich nicht, geht ja erstmal nur um die Idee).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2308995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2308995</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sat, 23 Mar 2013 14:35:45 GMT</pubDate></item><item><title><![CDATA[Reply to Policy Design Pattern mit &amp;quot;Querverbindungen&amp;quot; on Sat, 23 Mar 2013 14:44:13 GMT]]></title><description><![CDATA[<pre><code>template &lt;class foo, template &lt;class bar&gt; class foobar&gt;
</code></pre>
<p>oder mit typename:</p>
<pre><code>template &lt;typename foo, template &lt;typename bar&gt; class foobar&gt;
</code></pre>
<p>Typenames können keine Templateparameter haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309000</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 23 Mar 2013 14:44:13 GMT</pubDate></item></channel></rss>