<?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[Schwierigkeiten mit templates]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>leider finde ich im Netz nichts, auch hier über die Suche nicht - oder ich hab die falschen Suchbegriffe... <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>
<p>Gerade bin ich beim Thema templates und ich habe einen Code geschrieben in dem ich das ausprobieren wollte.<br />
Wie ihr nachfolgend seht, möchte ich ein Array per Eingaben füllen und sortieren lassen.</p>
<p>Bitte helft mir bei folgenden Problemen:</p>
<p>1. In der template-Funktion kommen die Arrays nicht an, bzw. nach der Übergabe der Arrays hat das int Array nur 1 Element, anstatt 5. Das string Array hat 0 Elemente.<br />
-&gt; Warum..? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>2. Wie kann ich die Eingabe der Werte realisieren..?<br />
getline( cin, Array[i] ) funktioniert ja nicht, weil sie ja nur strings akzeptiert und beim Aufruf mit dem int Array ist das natürlich Mist.<br />
Und bei cin &gt;&gt; Array[i] hätte ich ja das Problem dass ich, bei Texteingabe, die Eingabe nur bis zum ersten Leerzeichen erhalte.<br />
cin.ignore( 1, '\n' ) hilft auch nicht, weil ich beim int Array ja dann zwei Eingaben machen MUSS und der string ist ja so trotzdem begrenzt.<br />
-&gt; oder ist das gar nicht möglich beide Varianten auf einmal abzudecken..? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>3. Gibt es eine elegantere Methode die Anzahl der Elemente eines Arrays zu ermitteln wie meine..?</p>
<p>Hier mal der Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

/*	Prototypen
	-------------------------------------------------------------------------- */
/* --&gt; Template Anzahl der Array Elemente ermitteln */
template &lt;typename type&gt;
inline int intAnzahlArrayElemente( type Array[] )
{
	/* Rückgabe der Anzahl */
	return( sizeof( Array ) / sizeof( type ) );
}

/* --&gt; Template Elemnte des Arrays eingeben */
template &lt;typename type&gt;
inline void voidElementeEingeben( type Array[] )
{
	int intElemente;
	type typeEingabe;
	intElemente = intAnzahlArrayElemente( Array );

	for ( int i = 0; i &lt; intElemente; i++ )
	{
		cout &lt;&lt; &quot;  &quot; &lt;&lt; i+1 &lt;&lt; &quot;. Wert: &quot;;

		/* ----------------------------------------------------------
			Hier möchte ich vom User Eingaben abfragen, damit
			das aktuelle Array damit gefüllt wird

			--&gt; wie kann ich das lösen..??

		   ---------------------------------------------------------- */
	}
}

/* --&gt; Template Array sortieren */
template &lt;typename type&gt;
inline void voidSortiere( type Array[] )
{
	int intElemente;
	type type_tmp;

	intElemente = intAnzahlArrayElemente( Array );

	for ( int i = 0; i &lt; ( intElemente-1 ); i++ )
	{
		for ( int j = i; j &lt; ( intElemente ); j++ )
		{
			if ( Array[ i ] &gt; Array[ j ] )
			{
				type_tmp   = Array[ i ];
				Array[ i ] = Array[ j ];
				Array[ j ] = type_tmp;
			}
		}
	}

	for ( int i = 0; i &lt; intElemente; i++ )
	{
		cout &lt;&lt; &quot;     &quot; &lt;&lt; Array[ i ] &lt;&lt; '\n';
	}
}

/* --&gt; Template Klasse */
template &lt; typename type1, typename type2, typename type3 &gt;
class tmpKlasse
{
	private:
		string strObjektName;
		type1 Var1;
		type2 Var2;
		type3 Var3;

	public:
		tmpKlasse(string strOName, type1 Var1_, type2 Var2_, type3 Var3_):
			strObjektName(strOName), Var1(Var1_), Var2(Var2_), Var3(Var3_)
			{ cout &lt;&lt; &quot;Objekt &quot; &lt;&lt; strObjektName &lt;&lt; &quot; -&gt; erzeugt..!\n&quot;; };

		type1 type1GetVar1(){ return Var1; }
		type2 type2GetVar2(){ return Var2; }
		type2 type3GetVar3(){ return Var3; }

		void voidDatenausgabe()
		{
			cout &lt;&lt; &quot;  Var1: &quot; &lt;&lt; Var1 &lt;&lt; '\n'
				 &lt;&lt; &quot;  Var2: &quot; &lt;&lt; Var2 &lt;&lt; '\n'
				 &lt;&lt; &quot;  Var3: &quot; &lt;&lt; Var3 &lt;&lt; &quot;\n\n&quot;;
		}
};

/*	Hauptprogramm
	-------------------------------------------------------------------------- */
void main()
{
	int intArray[5];
	string strArray[7];

	cout &lt;&lt; &quot;Template Funktionen\n&quot;
		 &lt;&lt; &quot;-----------------------------------------\n\n&quot;
		 &lt;&lt; &quot;  intArray befuellen\n&quot;
		 &lt;&lt; &quot;  ------------------\n&quot;;
	voidElementeEingeben&lt;int&gt;( intArray );

	cout &lt;&lt; &quot;  strArray befuellen\n&quot;
		 &lt;&lt; &quot;  ------------------\n&quot;;
	voidElementeEingeben&lt;string&gt;( strArray );

	cout &lt;&lt; &quot;\n  Sortierte Ausgabe der Arrays verschiedener Typen\n&quot;
		 &lt;&lt; &quot;  ------------------------------------------------\n&quot;
		 &lt;&lt; &quot;  -&gt; int-Array:\n&quot;;
	voidSortiere&lt;int&gt;( intArray );

	cout &lt;&lt; &quot;\n  -&gt; string-Array:\n&quot;;
	voidSortiere&lt;string&gt;( strArray );

	cout &lt;&lt; &quot;\n-----------------------------------------------\n&quot;
		 &lt;&lt; &quot;-----------------------------------------------\n\n&quot;
		 &lt;&lt; &quot;Template Klasse\n\n&quot;
		 &lt;&lt; &quot;-----------------------------------------\n\n&quot;;
	/* Objekte aus der tmpKlasse erzeugen */
	tmpKlasse&lt; string, string, string&gt; tmpK_Objekt1( &quot;1 - nur string-Attribute&quot;, &quot;Klasse&quot;, &quot;mit&quot;, &quot;String Attributen&quot; );
	      /* &lt; Argumentliste..!!     &gt; */
	tmpKlasse&lt; string, int, float&gt; tmpK_Objekt2( &quot;2 - gemischte Attribut-Typen&quot;, &quot;Klasse mit int &amp; float&quot;, 50, 326.14 );

	cout &lt;&lt; &quot;\n  Ausgabe uber Klassen-Mehtode:\n&quot;
		 &lt;&lt; &quot;-------------------------------\n&quot;;
	tmpK_Objekt1.voidDatenausgabe();
	tmpK_Objekt2.voidDatenausgabe();

	cout &lt;&lt; &quot;\n  Ueber getter-Methode:\n&quot;
		 &lt;&lt; &quot;-------------------------------\n&quot;
		 &lt;&lt; &quot;  Var1: &quot; &lt;&lt; tmpK_Objekt1.type1GetVar1() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var2: &quot; &lt;&lt; tmpK_Objekt1.type2GetVar2() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var3: &quot; &lt;&lt; tmpK_Objekt1.type3GetVar3() &lt;&lt; &quot;\n\n&quot;
		 &lt;&lt; &quot;  Var1: &quot; &lt;&lt; tmpK_Objekt2.type1GetVar1() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var2: &quot; &lt;&lt; tmpK_Objekt2.type2GetVar2() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var3: &quot; &lt;&lt; tmpK_Objekt2.type3GetVar3() &lt;&lt; &quot;\n\n&quot;;

	system(&quot;Pause&quot;);
}
</code></pre>
<p>PS: die Klasse funktioniert einwandfrei - trotzdem bin ich natürlich für Verbesserungsvorschläge offen..! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Danke schon mal im Voraus..!! <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>
<p>Gruß</p>
<p>Eisenspitze</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305783/schwierigkeiten-mit-templates</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:25:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305783.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Jul 2012 19:01:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:02:26 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>leider finde ich im Netz nichts, auch hier über die Suche nicht - oder ich hab die falschen Suchbegriffe... <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>
<p>Gerade bin ich beim Thema templates und ich habe einen Code geschrieben in dem ich das ausprobieren wollte.<br />
Wie ihr nachfolgend seht, möchte ich ein Array per Eingaben füllen und sortieren lassen.</p>
<p>Bitte helft mir bei folgenden Problemen:</p>
<p>1. In der template-Funktion kommen die Arrays nicht an, bzw. nach der Übergabe der Arrays hat das int Array nur 1 Element, anstatt 5. Das string Array hat 0 Elemente.<br />
-&gt; Warum..? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>2. Wie kann ich die Eingabe der Werte realisieren..?<br />
getline( cin, Array[i] ) funktioniert ja nicht, weil sie ja nur strings akzeptiert und beim Aufruf mit dem int Array ist das natürlich Mist.<br />
Und bei cin &gt;&gt; Array[i] hätte ich ja das Problem dass ich, bei Texteingabe, die Eingabe nur bis zum ersten Leerzeichen erhalte.<br />
cin.ignore( 1, '\n' ) hilft auch nicht, weil ich beim int Array ja dann zwei Eingaben machen MUSS und der string ist ja so trotzdem begrenzt.<br />
-&gt; oder ist das gar nicht möglich beide Varianten auf einmal abzudecken..? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>3. Gibt es eine elegantere Methode die Anzahl der Elemente eines Arrays zu ermitteln wie meine..?</p>
<p>Hier mal der Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

/*	Prototypen
	-------------------------------------------------------------------------- */
/* --&gt; Template Anzahl der Array Elemente ermitteln */
template &lt;typename type&gt;
inline int intAnzahlArrayElemente( type Array[] )
{
	/* Rückgabe der Anzahl */
	return( sizeof( Array ) / sizeof( type ) );
}

/* --&gt; Template Elemnte des Arrays eingeben */
template &lt;typename type&gt;
inline void voidElementeEingeben( type Array[] )
{
	int intElemente;
	type typeEingabe;
	intElemente = intAnzahlArrayElemente( Array );

	for ( int i = 0; i &lt; intElemente; i++ )
	{
		cout &lt;&lt; &quot;  &quot; &lt;&lt; i+1 &lt;&lt; &quot;. Wert: &quot;;

		/* ----------------------------------------------------------
			Hier möchte ich vom User Eingaben abfragen, damit
			das aktuelle Array damit gefüllt wird

			--&gt; wie kann ich das lösen..??

		   ---------------------------------------------------------- */
	}
}

/* --&gt; Template Array sortieren */
template &lt;typename type&gt;
inline void voidSortiere( type Array[] )
{
	int intElemente;
	type type_tmp;

	intElemente = intAnzahlArrayElemente( Array );

	for ( int i = 0; i &lt; ( intElemente-1 ); i++ )
	{
		for ( int j = i; j &lt; ( intElemente ); j++ )
		{
			if ( Array[ i ] &gt; Array[ j ] )
			{
				type_tmp   = Array[ i ];
				Array[ i ] = Array[ j ];
				Array[ j ] = type_tmp;
			}
		}
	}

	for ( int i = 0; i &lt; intElemente; i++ )
	{
		cout &lt;&lt; &quot;     &quot; &lt;&lt; Array[ i ] &lt;&lt; '\n';
	}
}

/* --&gt; Template Klasse */
template &lt; typename type1, typename type2, typename type3 &gt;
class tmpKlasse
{
	private:
		string strObjektName;
		type1 Var1;
		type2 Var2;
		type3 Var3;

	public:
		tmpKlasse(string strOName, type1 Var1_, type2 Var2_, type3 Var3_):
			strObjektName(strOName), Var1(Var1_), Var2(Var2_), Var3(Var3_)
			{ cout &lt;&lt; &quot;Objekt &quot; &lt;&lt; strObjektName &lt;&lt; &quot; -&gt; erzeugt..!\n&quot;; };

		type1 type1GetVar1(){ return Var1; }
		type2 type2GetVar2(){ return Var2; }
		type2 type3GetVar3(){ return Var3; }

		void voidDatenausgabe()
		{
			cout &lt;&lt; &quot;  Var1: &quot; &lt;&lt; Var1 &lt;&lt; '\n'
				 &lt;&lt; &quot;  Var2: &quot; &lt;&lt; Var2 &lt;&lt; '\n'
				 &lt;&lt; &quot;  Var3: &quot; &lt;&lt; Var3 &lt;&lt; &quot;\n\n&quot;;
		}
};

/*	Hauptprogramm
	-------------------------------------------------------------------------- */
void main()
{
	int intArray[5];
	string strArray[7];

	cout &lt;&lt; &quot;Template Funktionen\n&quot;
		 &lt;&lt; &quot;-----------------------------------------\n\n&quot;
		 &lt;&lt; &quot;  intArray befuellen\n&quot;
		 &lt;&lt; &quot;  ------------------\n&quot;;
	voidElementeEingeben&lt;int&gt;( intArray );

	cout &lt;&lt; &quot;  strArray befuellen\n&quot;
		 &lt;&lt; &quot;  ------------------\n&quot;;
	voidElementeEingeben&lt;string&gt;( strArray );

	cout &lt;&lt; &quot;\n  Sortierte Ausgabe der Arrays verschiedener Typen\n&quot;
		 &lt;&lt; &quot;  ------------------------------------------------\n&quot;
		 &lt;&lt; &quot;  -&gt; int-Array:\n&quot;;
	voidSortiere&lt;int&gt;( intArray );

	cout &lt;&lt; &quot;\n  -&gt; string-Array:\n&quot;;
	voidSortiere&lt;string&gt;( strArray );

	cout &lt;&lt; &quot;\n-----------------------------------------------\n&quot;
		 &lt;&lt; &quot;-----------------------------------------------\n\n&quot;
		 &lt;&lt; &quot;Template Klasse\n\n&quot;
		 &lt;&lt; &quot;-----------------------------------------\n\n&quot;;
	/* Objekte aus der tmpKlasse erzeugen */
	tmpKlasse&lt; string, string, string&gt; tmpK_Objekt1( &quot;1 - nur string-Attribute&quot;, &quot;Klasse&quot;, &quot;mit&quot;, &quot;String Attributen&quot; );
	      /* &lt; Argumentliste..!!     &gt; */
	tmpKlasse&lt; string, int, float&gt; tmpK_Objekt2( &quot;2 - gemischte Attribut-Typen&quot;, &quot;Klasse mit int &amp; float&quot;, 50, 326.14 );

	cout &lt;&lt; &quot;\n  Ausgabe uber Klassen-Mehtode:\n&quot;
		 &lt;&lt; &quot;-------------------------------\n&quot;;
	tmpK_Objekt1.voidDatenausgabe();
	tmpK_Objekt2.voidDatenausgabe();

	cout &lt;&lt; &quot;\n  Ueber getter-Methode:\n&quot;
		 &lt;&lt; &quot;-------------------------------\n&quot;
		 &lt;&lt; &quot;  Var1: &quot; &lt;&lt; tmpK_Objekt1.type1GetVar1() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var2: &quot; &lt;&lt; tmpK_Objekt1.type2GetVar2() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var3: &quot; &lt;&lt; tmpK_Objekt1.type3GetVar3() &lt;&lt; &quot;\n\n&quot;
		 &lt;&lt; &quot;  Var1: &quot; &lt;&lt; tmpK_Objekt2.type1GetVar1() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var2: &quot; &lt;&lt; tmpK_Objekt2.type2GetVar2() &lt;&lt; '\n'
		 &lt;&lt; &quot;  Var3: &quot; &lt;&lt; tmpK_Objekt2.type3GetVar3() &lt;&lt; &quot;\n\n&quot;;

	system(&quot;Pause&quot;);
}
</code></pre>
<p>PS: die Klasse funktioniert einwandfrei - trotzdem bin ich natürlich für Verbesserungsvorschläge offen..! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Danke schon mal im Voraus..!! <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>
<p>Gruß</p>
<p>Eisenspitze</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231070</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:02:26 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:03:15 GMT]]></title><description><![CDATA[<p>Arrays lassen sich nicht als Parameter übergeben.</p>
<pre><code class="language-cpp">void foo(T a[])
</code></pre>
<p>ist äquivalent zu</p>
<pre><code class="language-cpp">void foo(T* a)
</code></pre>
<p>Nimm entweder eine Referenz auf ein Array, oder noch viel besser: std::array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231071</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:03:15 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:11:34 GMT]]></title><description><![CDATA[<p>oder std::vector...</p>
<p>zumal das hier auch nicht geht:</p>
<pre><code class="language-cpp">template &lt;typename type&gt;
inline int intAnzahlArrayElemente( type Array[] )
{
    /* Rückgabe der Anzahl */
    return( sizeof( Array ) / sizeof( type ) );
}
</code></pre>
<p>da der parameter ja &quot;type * array&quot; ist wird hier nur die grösse eines typ eines zeigers(der auf einem system normalerweise immer konstant ist) durch die grösse des typs selbst geteilt</p>
<p>bsp:<br />
int auf 32Bit Betriebssystem -&gt; 4 / 4 = 1<br />
double auf 32Bit Betriebssystem -&gt; 8 / 4 = 2</p>
<p>aber das ist unabhängig von deinem array...</p>
<p>um trotzdem die grösse zu behalten musst du sie entweder mitspeichern oder durch z.b. Nullterminierungen berechenbar machen<br />
es gibt auch einen hack mit templates, aber da müssten die profis was zu sagen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231072</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:22:03 GMT]]></title><description><![CDATA[<p>Wow, das ging ja fix..ich bin echt beeindruckt... <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="😃"
    /> <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>
<p>Leider hab ich Schwierigkeiten das zu verstehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Mir ist klar dass</p>
<pre><code>void foo( T a[] )
</code></pre>
<p>gleich</p>
<pre><code>void foo( T *a )
</code></pre>
<p>ist - aber warum std::array..?<br />
Ist das durch</p>
<pre><code>using namespace std;
</code></pre>
<p>nicht sowieso schon erledigt..?<br />
Zudem - bei std::array oder std::vektor meckert Visual... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Den Zugriff per Referenz werde ich jetzt mal ausprobieren. <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>
<p>Das mit der Ermittlung der Anzahl leuchtet mir ein, d.h. das letzte Element im Array müsste \0 sein..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231076</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:22:03 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:28:06 GMT]]></title><description><![CDATA[<p>jain, das kann man so pauschal nicht sagen, da gibt es viele andere probleme.<br />
\0 als terminierung zu verwenden macht nur selten sinn, z.b. bei strings da die 0 als char selten vorkommt und auch nicht üblich ist als normales zeichen.<br />
aber in einem int array kommt es schon öfters mal vor dass es nullen gibt, und das nicht am ende <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
bei gleitkommazahlen kann es, wenn es blöd kommt, auch passieren, dass sich die 0 nicht richtig darstellen lässt und damit nicht ganz null ist.</p>
<p>das einzige was in dem fall wirklich hilft, ist sich die grösse zu merken. und daher, wieso das rad neu erfinden wenn es schon zig mal neu erfunden wurde?!<br />
==&gt;<br />
<a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">zu vector</a><br />
<a href="http://www.cplusplus.com/reference/stl/array/" rel="nofollow">zu array(ein eingekapseltes statisches array, was mehr sicherheit und funktionalität bietet als das rohe array)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231080</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:28:06 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:37:05 GMT]]></title><description><![CDATA[<blockquote>
<p>...in einem int array kommt es schon öfters mal vor dass es nullen gibt, und das nicht am ende</p>
</blockquote>
<p>stimmt, da war ja noch was... :p</p>
<p>Danke für die Links..! Das werd ich mir mal anschauen.</p>
<p>Hast du vielleicht auch noch einen Tipp für die Abfrage der Daten..? (Problem Nr. 2) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231087</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:37:05 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:48:58 GMT]]></title><description><![CDATA[<p>tja generisch ist das alles nicht so gut.</p>
<p>halbwegs gut klappts vielleicht wenn du eine string zeile einliest, diese dann in einen stringstream stopfst und daraus dann dein datum rausholst</p>
<p>guckst du hier:</p>
<pre><code class="language-cpp">std::string s;
std::getline(std::cin, s);

std::stringstream ss;
ss &lt;&lt; s;

type x;
ss &gt;&gt; x;
</code></pre>
<p>aber da musst du dir über die fehlerbehandlung im klaren sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231089</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:48:58 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 19:56:02 GMT]]></title><description><![CDATA[<p>Okay, dass ist mir bekannt..zumindest jetzt wieder in Erinnerung... <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>
<p>Mit Fehlerbehandlung meinst du</p>
<pre><code class="language-cpp">cin.fail()
</code></pre>
<p>oder..?</p>
<p>Wie kommst du auf Datum..?</p>
<p>Mal so nebenbei, das Bsp. habe ich mir frei einfach so ausgedacht - war das einfach Mist..? Also ich meine wie oft würde man sowas als template anlegen, eine Funktion die Text &amp; Zahlen verarbeiten soll..? ..deiner Erfahrung nach..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231095</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 19:56:02 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 20:26:40 GMT]]></title><description><![CDATA[<p>weniger die fail bits von den streams sondern eher, was soll passieren wenn man zahlen und buchstaben mischt und eig eine zahl eingeben will. solche fälle halt, die müssen wohl überlegt sein</p>
<p>tja, mit erfahrung mangelts bei mir. dazu kann ich nur sagen, ich hab keien erfahrung...</p>
<p>aber ich wäre da halt ziemlich vorsichtig was die eingabe betrifft, da kann man den user mit richtig nerven, man kann die sicherheit des programms und damit des computers anfechten (guck mal den tanenbaum zum thema betriebssystem sicherheit, buffer overflow usw.)</p>
<p>edit: eingaben sollte man weniger generisch machen, da kann man ruhig konkreter werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231102</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sun, 08 Jul 2012 20:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 20:42:41 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>fail bits</p>
</blockquote>
<p>Es gibt keine fail bits. Nur error-bits und das failbit.</p>
<p>Wieso machst du überhaupt die Pufferung durch den Stringstream? Gerade <code>std::getline</code> mit einem LF als Delimitter ist nicht gut, da ein überladener left-shift Operator auch</p>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;(std::ostream&amp; os, T const&amp; t)
{
    return os &lt;&lt; t.getThis() &lt;&lt; '\n' &lt;&lt; t.getThat();
}
</code></pre>
<p>so aussehen kann (unsinnig aber möglich).</p>
<blockquote>
<p>aber ich wäre da halt ziemlich vorsichtig was die eingabe betrifft, da kann man den user mit richtig nerven, man kann die sicherheit des programms und damit des computers anfechten (guck mal den tanenbaum zum thema betriebssystem sicherheit, buffer overflow usw.)</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenn mann es richtig macht dann ist daran garnix nervig oder gefährlich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231106</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 08 Jul 2012 20:42:41 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 21:13:50 GMT]]></title><description><![CDATA[<p>Also std::array ist eine tolle Sache (ebenso std::vector), danke..! <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="😃"
    /> <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>
<p>Nur mit</p>
<pre><code class="language-cpp">std::string s;
std::getline(std::cin, s);

std::stringstream ss;
ss &lt;&lt; s;

type x;
ss &gt;&gt; x;
</code></pre>
<p>klappt´s dann leider nicht, der Compiler gibt mir da</p>
<blockquote>
<p>error C2678: Binärer Operator '&gt;&gt;': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::stringstream' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
</blockquote>
<p>aus. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>So wie ich die Arrays am Anfang erstellt und übergeben habe, funktioniert es so (beim testen hab ich die Array-Größe mit übergeben <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>
<p>Also danke noch mal für eure (schnelle..!!) Hilfe..! <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="😃"
    /> <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="😃"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2231114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231114</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 21:45:28 GMT]]></title><description><![CDATA[<p>Ach so, ja daran hab ich im Übungsprogramm jetzt natürlich nicht gedacht, ist ja nur meins an dem ich mir das beibringe... <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="😃"
    /><br />
Du hast natürlich Recht, das ist wichtig und mir auch bekannt. In VBA habe ich schon einige Programme für meine damalige Firma geschrieben, da hab ich schon gemerkt dass die Benutzer (mich selber eingeschlossen) beim verwenden gerade die Sachen eingeben an die man selber (beim Programmieren) am wenigsten denkt... :p</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28547">@Sone</a><br />
Wie würdest du das lösen..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231120</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 21:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 07:07:28 GMT]]></title><description><![CDATA[<p>Wie würde ich eine Menge von Zahlen von der Konsole einlesen?</p>
<pre><code class="language-cpp">std::vector&lt;int&gt; vec(5);
        for(size_t n(0);n &lt; 5;++n)

                while(!(std::cin &gt;&gt; vec[n]))
                {
                        std::cout &lt;&lt; &quot;Error! Type in a number, please!\n&quot;;
                        std::cin.clear();
                        std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
                }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2231121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231121</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 07:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Sun, 08 Jul 2012 22:20:27 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie würde ich eine Menge von Zahlen von der Konsole einlesen?</p>
</blockquote>
<p>Hm, aber es ging ja darum eine Lösung zu finden, dass ich es in der tamplate Funktion hinbekomme int UND strings einzulesen.<br />
Mit dem selben Code.<br />
Und zwar so, dass das einlesen der Eingabe bei einer Zahl nach der Zahl endet, wie es cin &lt;&lt; Var eben tut; und das Einlesen nach der Zeilenschaltung, wie es getline() eben tut.</p>
<p>Für Zahlen funktioniert deine Methode natürlich, aber beim string hilft das wenig..oder verstehe ich daran irgendetwas nicht..? <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/2231125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231125</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jul 2012 22:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 07:07:01 GMT]]></title><description><![CDATA[<p>Eisenspitze schrieb:</p>
<blockquote>
<p>Für Zahlen funktioniert deine Methode natürlich, aber beim string hilft das wenig..oder verstehe ich daran irgendetwas nicht..? <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>Wunderbar funktioniert das für Strings. Probier es doch aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231147</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 07:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 07:16:44 GMT]]></title><description><![CDATA[<p>Natürlich hab ich das probiert bevor ich dir geschrieben hab - ich bin doch auf der Suche nach einer Lösung..!</p>
<p>Leider klappt es eben nicht..!</p>
<p>Das ist der Code:</p>
<pre><code>#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

void main()
{
	std::vector&lt;string&gt; strvec(5);
        for(size_t n(0);n &lt; 5;++n)
        {
                while(!(std::cin &gt;&gt; strvec[n]))
                {
                        std::cout &lt;&lt; &quot;Error! Type in a number, please!\n&quot;;
                        std::cin.clear();
                        std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
                }
        }

		for(size_t n(0);n &lt; 5;++n)
		{cout &lt;&lt; strvec[n] &lt;&lt; &quot;\n&quot;;}

	system(&quot;Pause&quot;);
}
</code></pre>
<p>Also genau deiner nur eben für strings.</p>
<p>Wenn ich:</p>
<blockquote>
<p>&quot;Hallo Du&quot;<br />
&quot;ein Test&quot;<br />
&quot;und geht nicht&quot;</p>
</blockquote>
<p>eingebe, kommt</p>
<blockquote>
<p>Hallo<br />
Du<br />
ein<br />
Test<br />
und</p>
</blockquote>
<p>heraus..!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231149</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Mon, 09 Jul 2012 07:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 07:28:27 GMT]]></title><description><![CDATA[<p>Ahh. Natürlich. Jetzt verstehe ich dein Problem. Der operator&gt;&gt; liest nur bis zum ersten Whitespace...<br />
Vielleicht machst du eine Spezialisierung?</p>
<p>Ach, btw: <code>void main()</code> ? Ist das dein ernst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231152</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 07:28:27 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 07:50:56 GMT]]></title><description><![CDATA[<p>Okay, flags hab ich bisher nur ein paar mal so neben bei beim suchen gelesen, aber noch nie bewusst irgendwo wahrgenommen...</p>
<p>Kannst du mir da auf die Sprünge helfen..? Hab grad im Netz gesucht und rumgespielt, aber ich bekomm´s nicht hin... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Meinst du ios::skipws..?</p>
<p>Spezialisierung ist mir bekannt, nur wie muss ich´s mit ios::skipw schreiben..?</p>
<p>Achso, das void main hab ich nur drin weil das im Skript so stand, wobei ich irgendwo im Hinterkopf hab dass es immer int main sein MUSS.<br />
-&gt; stimmt das..?<br />
-&gt; welche Hintergründe gibt´s da..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231160</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Mon, 09 Jul 2012 07:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 08:29:41 GMT]]></title><description><![CDATA[<p>Nun, mit Flags habe ich nichts gefunden, vielleicht jemand anders.</p>
<p>Was du machen könntest ist eine Überladung mit einer Templatefunktion:</p>
<pre><code class="language-cpp">template&lt;typename t&gt;
std::istream&amp; readFrom(std::istream&amp; is, t&amp; toread)
{
    return is &gt;&gt; toread;
}

std::istream&amp; readFrom(std::istream&amp; is, std::string &amp;toread)
{
    return std::getline(is, toread);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2231162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231162</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 08:29:41 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 07:57:28 GMT]]></title><description><![CDATA[<p>ja müsste inmain() heissen. warum? weil das der standard besagt als programmeinstiegspunkt</p>
<p>du musst dir das so vorstellen, dein compiler bettet dein programm in eine laufzeitumgebung ein, die in etwa so aussieht:</p>
<pre><code class="language-cpp">someFunction();
// ...
int returnValue = main();
if ( returnValue == ... )
    ...
somefunction();
</code></pre>
<p>void main ist halt kein standardkonformes C++</p>
<p>bei deinem letzten programm lässt du auch nur 5 worte eingeben durch die schleifen, daher nicht wundern wenn nur 5 wieder rauskommen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231163</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 09 Jul 2012 07:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 08:09:30 GMT]]></title><description><![CDATA[<p>Cool, so klappt es..! <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="😃"
    /> <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>
<p>Damit ich´s richtig verstehe:<br />
Damit haben wir jetzt eine überladene Template-Funktion und der Compiler sucht sich die richtige raus, je nach dem ob´s ein string Vektor ist, oder ein anderer..?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18806">@Skym0sh0</a><br />
Danke für die Erkärung..! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2231164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231164</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Mon, 09 Jul 2012 08:09:30 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 08:19:06 GMT]]></title><description><![CDATA[<p>ja, wobei ich die funktion mit dem string als template spezialisieren würde, was Sone in seinem beitrag nicht gemacht hat</p>
<p>mit änderung:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
std::istream&amp; readFrom(std::istream&amp; is, T &amp; toread)
{
    return is &gt;&gt; toread;
}

template&lt;&gt;
std::istream&amp; readFrom(std::istream&amp; is, std::string &amp; toread)
{
    return std::getline(is, toread);
}
</code></pre>
<p>nicht dass dann probleme bei überladung oder überdeckung gibt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231167</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 09 Jul 2012 08:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 08:31:54 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>template&lt;&gt;<br />
std::istream&amp; readFrom(std::istream&amp; is, std::string &amp; toread)<br />
{<br />
return std::getline(is, toread);<br />
}<br />
[/cpp]</p>
<p>nicht dass dann probleme bei überladung oder überdeckung gibt...</p>
</blockquote>
<p>Deine Version ist so eigentlich falsch.</p>
<pre><code class="language-cpp">template&lt;&gt;
std::istream&amp; readFrom&lt;std::string&gt;(std::istream&amp; is, std::string &amp; toread)
{
    return std::getline(is, toread);
}
</code></pre>
<p>Und meine ist vollkommen korrekt und leichter zu lesen, denn es ist eine Überladung; für den Compiler stehen non-template functions an erster Stelle, danach kommen erst Template-Funktionen.</p>
<p>Außerdem kennt jeder die Regel: <strong>Templatefunktions-Spezialisierungen sind schlecht, sie überladen nicht.</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231169</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 08:31:54 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 08:32:57 GMT]]></title><description><![CDATA[<p>..ui..da komm ich so langsam nicht mehr mit.</p>
<p>Könnt ihr das vielleicht näher erklären..? ..oder mir was zu lesen geben..? <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>
<p>Es geht um den Unterschied zwischen</p>
<pre><code class="language-cpp">std::istream&amp; readFrom&lt;std::string&gt;(std::istream&amp; is, std::string &amp; toread)
</code></pre>
<p>und</p>
<pre><code class="language-cpp">std::istream&amp; readFrom(std::istream&amp; is, std::string &amp; toread)
</code></pre>
<p>oder..?</p>
<p>Mal so nebenbei, warum ist mein eingebetteter Code eigentlich nur schwarz/weiß..? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <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/2231171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231171</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Mon, 09 Jul 2012 08:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 09:06:39 GMT]]></title><description><![CDATA[<p>jetzt in den letzten beispielen hast du keine schlüsselworte und nur die werden farblich herausgehoben, bei anderen code snippets von dir hattest du Code statt Cpp tags verwendet</p>
<p>ok, mit den templates komme ich langsam auch nicht mehr so mit.</p>
<p>ich, mit meiner intuition, würde das template so schreiben wie vorgeschlagen. und es dann für std::string weiter spezialisieren</p>
<p>ich habs auch grad mal getestet (VC2010 unter Win7 64), da klappt sowohl die überladung neben dem template und der spezialisierung</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template&lt;typename T&gt;
T maximum(T const&amp; a, T const&amp; b) //template
{
	return a&lt;=b ? b : a;
}

template&lt;&gt;
float maximum&lt;float&gt;(float const&amp; a, float const&amp; b) //spezialisiertes template
// oder 
// float maximum(float const&amp; a, float const&amp; b)  geht auch!
{
	std::cout &lt;&lt; &quot;Template Spez&quot; &lt;&lt; std::endl;
	if ( a &lt; b )
		return b;
	else
		return a;
}

float maximum(float const&amp; a, float const&amp; b) // normale funktion
{
	std::cout &lt;&lt; &quot;Non-Template&quot; &lt;&lt; std::endl;
	if ( a &lt; b )
		return b;
	else
		return a;
}

int main(int argc, char * argv[])
{
	std::cout &lt;&lt; maximum(4355.0f, 7.0f) &lt;&lt; std::endl; // ruft die normale funktion auf
        std::cout &lt;&lt; maximum&lt;float&gt;(4355.0f, 7.0f) &lt;&lt; std::endl; // ruft die template spez auf
        std::cout &lt;&lt; maximum(4355.0, 7.0) &lt;&lt; std::endl; // ruft maximum&lt;double&gt; auf, also das template

	return 0x0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2231185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231185</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 09 Jul 2012 09:06:39 GMT</pubDate></item><item><title><![CDATA[Reply to Schwierigkeiten mit templates on Mon, 09 Jul 2012 09:10:57 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;typename T1, typename T2&gt;
auto max(T1 t1, T2 t2) -&gt; decltype(t1 &gt; t2 ? t1 : t2)
{
    return t1 &gt; t2 ? t1 : t2;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2231187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231187</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 09 Jul 2012 09:10:57 GMT</pubDate></item></channel></rss>