<?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[C++ main]]></title><description><![CDATA[<p>Wann bekommen wir eigentlich mal eine C++ main? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">int main(std::vector&lt;std::string&gt; args)
{}
</code></pre>
<p>Is mir nur vorhin mal so in den Sinn gekommen :p</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280559/c-main</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 02:04:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280559.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Jan 2011 15:59:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 15:59:43 GMT]]></title><description><![CDATA[<p>Wann bekommen wir eigentlich mal eine C++ main? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">int main(std::vector&lt;std::string&gt; args)
{}
</code></pre>
<p>Is mir nur vorhin mal so in den Sinn gekommen :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007792</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 17 Jan 2011 15:59:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 16:21:55 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Wann bekommen wir eigentlich mal eine C++ main?</p>
</blockquote>
<p>Nie...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007806</guid><dc:creator><![CDATA[Neffer]]></dc:creator><pubDate>Mon, 17 Jan 2011 16:21:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 17:02:53 GMT]]></title><description><![CDATA[<p>Wenn du so Freude daran hast, schreib dir doch eine Funktion, welche die Argumente umwandelt.</p>
<pre><code class="language-cpp">int TheModernMain(std::vector&lt;std::string&gt; args);

int main(int argc, char** argv)
{
    return TheModernMain( Transmogrify(argc, argv) );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2007829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007829</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 17 Jan 2011 17:02:53 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 17:06:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main(int argc, char** argv)
{
    std::vector&lt;std::string&gt; args(argv, argv + argc);
    // ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2007832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007832</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 17 Jan 2011 17:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 17:13:25 GMT]]></title><description><![CDATA[<p>Funktion ist übertrieben:</p>
<pre><code class="language-cpp">int main(int argc, char** argv)
{
  std::vector&lt;std::string&gt; commandline(argv, argv+argc);
}
</code></pre>
<p>edit: Zu spät...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007837</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Jan 2011 17:13:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 17:19:03 GMT]]></title><description><![CDATA[<p>Klar geht sowas^^. Ich meinte ja nur mal... wäre vielleicht mal an der Zeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007844</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 17 Jan 2011 17:19:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 17:33:23 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Klar geht sowas^^. Ich meinte ja nur mal... wäre vielleicht mal an der Zeit.</p>
</blockquote>
<p>Genau, denn der Mehrwert der &quot;C++ main&quot; ist unbeschreiblich und der C++ Standard würde nach der notwendigen Ergänzung schön schlank bleiben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007861</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 17 Jan 2011 17:33:23 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 20:39:49 GMT]]></title><description><![CDATA[<p>Die gängigen Frameworks zur Verarbeitung von Kommandozeilenparametern erwarten<br />
allesamt char** und int. Ich habe zwar keine Zweifel daran, dass boost.program_options schnell ein entsprechendes Interface zusammen hätte, sollte eine Signatur von main dieser Form im Standard auftauchen, aber im Grunde müsste sich diese Lösung erst das Problem schaffen, das sie lösen soll. Ich schaudere auch bei dem Gedanken, unschuldige C++-Programmierer dabei zu sehen, wie sie die Parameter wieder aus dem Vektor kopieren, um getopt zufriedenzustellen.</p>
<p>Dazu kommt, dass diese Form von main nur benutzt werden könnte, wenn &lt;string&gt; und &lt;vector&gt; eingebunden werden - jedenfalls, sofern du nicht den Java-Weg gehen willst, dass bestimmte Header generell eingebunden werden, worüber Entwickler mit großen Projekten, die auf die Dauer des Kompilationsvorgangs achten, laut fluchen dürften. Außerdem liegen weitere Unannehmlichkeiten in dieser Route - schon bald hast du implizite toString-Methoden und Namensräume, die implizit benutzt werden. Ich finde es schwer, eine vernünftige Erklärung zu finden, warum main zwei #includes benötigen sollte, ohne mir selbst zu entgegnen: &quot;Wenn es dir so wichtig ist, warum schreibst du nicht einfach</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;string&gt;

int do_main(std::vector&lt;std::string&gt; args);

int main(int argc, char *argv) {
  return do_main(std::vector&lt;std::string&gt;(argv, argv + argc));
}
</code></pre>
<p>in einen Header und statt main</p>
<pre><code class="language-cpp">#include &quot;main.inl&quot;

int do_main(std::vector&lt;std::string&gt; args) {
  // Programm hier
}
</code></pre>
<p>?&quot;</p>
<p>Denn eine Implementation, die das Verhalten erzeugte, müsste sowieso so oder ähnlich vorgehen - du kannst dir möglicherweise den Aufschrei unter Shell-Entwicklern vorstellen, sollte man versuchen, die Aufrufskonventionen von Programmen in dieser Richtung zu verändern.</p>
<p>Geschenkt, dass char** eine archaische Form der String-Übergabe ist - der Kram liegt halt eh in dieser Form vor, und es ist wirklich kein Problem, ihn in einen Vektor zu stopfen, wenn man das will. Um eine Zeile Code zu sparen in einem Anwendungsfall, der eh fast nie auftritt, muss man nun wirklich nicht den Standard ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007985</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 17 Jan 2011 20:39:49 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 20:45:57 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>warum schreibst du nicht einfach</p>
<pre><code class="language-cpp">int main(int argc, char *argv)
</code></pre>
</blockquote>
<p>Ah, ok. Das schreibe ich ab jetzt immer so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007987</guid><dc:creator><![CDATA[ahok]]></dc:creator><pubDate>Mon, 17 Jan 2011 20:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 20:47:02 GMT]]></title><description><![CDATA[<p>Äh, jaaaa...*hust* Da hab ich wohl ein [] vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2007988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2007988</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 17 Jan 2011 20:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 22:02:59 GMT]]></title><description><![CDATA[<p>Shlo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main(int argc, char** argv)
{
    std::vector&lt;std::string&gt; args(argv, argv + argc);
    // ...
}
</code></pre>
</blockquote>
<p>Fast. Es müsste +(argc+1) sein. Sonst fehlt da ein Parameter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008042</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 17 Jan 2011 22:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 22:13:18 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Fast. Es müsste +(argc+1) sein. Sonst fehlt da ein Parameter.</p>
</blockquote>
<p>Nein, warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008048</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 17 Jan 2011 22:13:18 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 22:26:56 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Fast. Es müsste +(argc+1) sein. Sonst fehlt da ein Parameter.</p>
</blockquote>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox30931" /><label for="checkbox30931">Du hast verstanden, wie Iteratoren funktionieren.</label></div></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008061</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 17 Jan 2011 22:26:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 22:40:59 GMT]]></title><description><![CDATA[<p>Shlo schrieb:</p>
<blockquote>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox30932" /><label for="checkbox30932">Du hast verstanden, wie Iteratoren funktionieren.</label></div></p>
</blockquote>
<p>Man kann auch normal antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008068</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 17 Jan 2011 22:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 22:41:50 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Shlo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main(int argc, char** argv)
{
    std::vector&lt;std::string&gt; args(argv, argv + argc);
    // ...
}
</code></pre>
</blockquote>
<p>Fast. Es müsste +(argc+1) sein. Sonst fehlt da ein Parameter.</p>
</blockquote>
<p>Im c ist die +1 enthalten <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/2008070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008070</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 17 Jan 2011 22:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 23:14:21 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>Shlo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main(int argc, char** argv)
{
    std::vector&lt;std::string&gt; args(argv, argv + argc);
    // ...
}
</code></pre>
</blockquote>
<p>Fast. Es müsste +(argc+1) sein. Sonst fehlt da ein Parameter.</p>
</blockquote>
<p>Im c ist die +1 enthalten <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>Stimmt! Ich kann mir das nie merken, was der Wert von argc bedeutet.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3320">@Shlo</a>: Ja sicher. Da lag das Problem aber nicht. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008077</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 17 Jan 2011 23:14:21 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Mon, 17 Jan 2011 23:26:28 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Stimmt! Ich kann mir das nie merken, was der Wert von argc bedeutet.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3320">@Shlo</a>: Ja sicher. Da lag das Problem aber nicht. :p</p>
</blockquote>
<p>Du kannst dir nicht merken, was der Wert von arg<strong>c</strong> bedeutet? Really? <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/2008081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008081</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 17 Jan 2011 23:26:28 GMT</pubDate></item><item><title><![CDATA[Reply to C++ main on Tue, 18 Jan 2011 09:32:05 GMT]]></title><description><![CDATA[<p>Shlo schrieb:</p>
<blockquote>
<p>Du kannst dir nicht merken, was der Wert von arg<strong>c</strong> bedeutet? Really? <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>Genau. Aber vielleicht bleibt's ja diesmal hängen. Wenn man argv[0] nicht als &quot;Argument&quot; mitzählt, kann das schonmal vorkommen. Und so abwägig ist das nicht; denn das erste &quot;Programm-Argument&quot; befindet sich ja in argv[1] (bei entsprechender Definition von &quot;Argument&quot;). Ein &quot;Du hattest Recht, ich hatte Iteratoren nicht verstanden&quot; kann ich Dir nicht anbieten, da es nicht der Wahrheit entspricht.</p>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2008152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2008152</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 18 Jan 2011 09:32:05 GMT</pubDate></item></channel></rss>