<?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[Funktionsparameter bestimmen]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte gerne eine Funktion bauen die ähnliche Parameter annehmen kann.</p>
<p>hier mal ein Beispiel</p>
<pre><code class="language-cpp">void foo ( char* var ){
//...
}
void foo ( const char* var ){
//...
}
void foo ( unsigned char* var ){
//...
}
</code></pre>
<p>Es soll im Grunde jede Art von char Pointer annehmen können, nun weiß ich nicht wie man das schreiben soll. Will nicht unnötig 10 Funktionen definieren und Templates sind jetzt auch nicht wirklich passend. Bin der Meinung irgendwo gesehen zu haben, dass es möglich sei.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307291/funktionsparameter-bestimmen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 20:50:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307291.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Aug 2012 14:38:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 14:38:17 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte gerne eine Funktion bauen die ähnliche Parameter annehmen kann.</p>
<p>hier mal ein Beispiel</p>
<pre><code class="language-cpp">void foo ( char* var ){
//...
}
void foo ( const char* var ){
//...
}
void foo ( unsigned char* var ){
//...
}
</code></pre>
<p>Es soll im Grunde jede Art von char Pointer annehmen können, nun weiß ich nicht wie man das schreiben soll. Will nicht unnötig 10 Funktionen definieren und Templates sind jetzt auch nicht wirklich passend. Bin der Meinung irgendwo gesehen zu haben, dass es möglich sei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244450</guid><dc:creator><![CDATA[slux]]></dc:creator><pubDate>Wed, 22 Aug 2012 14:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 14:42:52 GMT]]></title><description><![CDATA[<p>Overloading ist wohl genau das, was du suchst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244451</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 22 Aug 2012 14:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 15:01:31 GMT]]></title><description><![CDATA[<p>slux schrieb:</p>
<blockquote>
<p>Will nicht unnötig 10 Funktionen definieren und Templates sind jetzt auch nicht wirklich passend.</p>
</blockquote>
<p>Wenn du das nicht haben willst, was dann? Folgende Möglichkeiten hättest du noch:</p>
<p>Makros -&gt; der nächste der das mitbekommt knüpft dich an der höchsten Rah auf.<br />
Code-Generatoren -&gt; Overkill, wozu auch?</p>
<p>Wenn das Template dir nicht schmeckt, könntest du noch mit enable_if, static_assert &amp; Co die Parametertypen einschränken. Aber vielleicht sollst ja auch für wchar_t's gehen? und für char32_t's, char16_t's und evtl. auch für Mylib::someCrazyFunStuffChar's?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244454</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 22 Aug 2012 15:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 15:04:33 GMT]]></title><description><![CDATA[<p>Was machst du denn dann mit var? Brauchst du noch die Typinformation (also, ob es char, const char, unsigned char, etc war) oder ist dir das egal? Wenn dir das egal ist, kannst du ja <a href="http://ideone.com/46D9L" rel="nofollow">sowas</a> machen.</p>
<p>Wenn der Typ wichtig ist, kannst du aus foo auch selbst ein Template basteln und entsprechend auf char-Typen beschränken per enable_if.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244457</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 22 Aug 2012 15:04:33 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 15:15:12 GMT]]></title><description><![CDATA[<p>Eigentlich kommt es darauf an, was genau in den Funktionen passiert. Wenn es mehr oder weniger stark von der Größe, Vorzeichenbehaftung oder gar internen Darstellung ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Fließkommazahlen) des Typs abhängig ist, dann ist wohl Überladung und/oder Einschränkung gut. Dabei sollte man dann beachten, Redundanz zu minimieren, sprich dass nicht alle Überladungen bis auf ein Detail gleich sind (in diesem Fall, Typ-Unabhängige Operationen einfach in Funktions-Templates auslagern).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244461</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 22 Aug 2012 15:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 16:16:32 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Wenn es mehr oder weniger stark von der Größe, Vorzeichenbehaftung oder gar internen Darstellung ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Fließkommazahlen) des Typs abhängig ist</p>
</blockquote>
<p>slux schrieb:</p>
<blockquote>
<p>Es soll im Grunde jede Art von char Pointer annehmen können,</p>
</blockquote>
<p>Je nachdem welche char-Typen er meint, kommt von alledem nur die Größe oder garnichts in Betracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244491</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 22 Aug 2012 16:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 16:31:18 GMT]]></title><description><![CDATA[<p>Sowas?</p>
<pre><code class="language-cpp">#include &lt;type_traits&gt;

struct eat_all_char_ptrs
{
    template &lt;typename T, typename = std::enable_if&lt;std::is_integral&lt;T&gt;::value&amp;&amp;std::is_same&lt;typename std::make_signed&lt;typename std::remove_cv&lt;T&gt;::type&gt;::type,char&gt;::value&gt;::type&gt;
    eat_all_char_ptrs(T* p) : p(p) {};
    const volatile void* p;
};

void foo(eat_all_char_ptrs);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2244502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244502</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 22 Aug 2012 16:31:18 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 16:40:38 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Wenn es mehr oder weniger stark von der Größe, Vorzeichenbehaftung oder gar internen Darstellung ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Fließkommazahlen) des Typs abhängig ist</p>
</blockquote>
<p>slux schrieb:</p>
<blockquote>
<p>Es soll im Grunde jede Art von char Pointer annehmen können,</p>
</blockquote>
<p>Je nachdem welche char-Typen er meint, kommt von alledem nur die Größe oder garnichts in Betracht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Das das so nicht ist, hab ich nicht behauptet, meine Aussage war einfach etwas allgemeiner gefasst.</p>
<p>Kein Grund gemein zu werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244508</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 22 Aug 2012 16:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 20:15:45 GMT]]></title><description><![CDATA[<p>slux schrieb:</p>
<blockquote>
<p>Es soll im Grunde jede Art von char Pointer annehmen können, nun weiß ich nicht wie man das schreiben soll.</p>
</blockquote>
<p>Was genau meinst du damit? Wenn es sich um verschiedene Typen handelt, wirst du in aller Regel wohl auch verschieden damit umgehen wollen, ansonsten hast du wohl sehr wahrscheinlich grad was, sagen wir mal, nicht unbedingt Elegantes vor...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244557</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 22 Aug 2012 20:15:45 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsparameter bestimmen on Wed, 22 Aug 2012 23:34:06 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Sowas?<br />
...</p>
</blockquote>
<p>Das'ja lustig. Hatte einen ähnlichen Einfall und nannte ihn auch &quot;sowas&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2244597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2244597</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 22 Aug 2012 23:34:06 GMT</pubDate></item></channel></rss>