<?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 3 Zeigern]]></title><description><![CDATA[<p>Morgen;</p>
<p>Habe folgendes geschrieben:</p>
<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>int Eingabe()<br />
{<br />
int *pZahl1;<br />
int *pZahl2;<br />
int *pZahl3;<br />
cout &lt;&lt; &quot;Geben sie die 1. Zahl ein: &quot;;<br />
cin &gt;&gt; *pZahl1;<br />
cout &lt;&lt; &quot;Geben sie die 2. Zahl ein: &quot;;<br />
cin &gt;&gt; *pZahl2;<br />
cout &lt;&lt; &quot;Geben sie die 3. Zahl ein: &quot;;<br />
cin &gt;&gt; *pZahl3;<br />
}</p>
<p>int ausgabe(int *pZahl1, int *pZahl2, int *pZahl3)<br />
{<br />
cout &lt;&lt; *pZahl1;</p>
<p>}</p>
<p>int main()<br />
{<br />
int *pZahl1;<br />
int *pZahl2;<br />
int *pZahl3;<br />
Eingabe();<br />
ausgabe(pZahl1, pZahl2, pZahl3);<br />
getchar();<br />
return 0;<br />
}</p>
<p>Läst sich auch starten, aber stürzt dann ab!<br />
Wenn ich nur 2 Zahlen eingebe geht alles ordentlich.<br />
Wo ist mein Fehler?</p>
<p>LG David</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/317547/problem-mit-3-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 14:20:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317547.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Jun 2013 12:37:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 12:37:15 GMT]]></title><description><![CDATA[<p>Morgen;</p>
<p>Habe folgendes geschrieben:</p>
<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>int Eingabe()<br />
{<br />
int *pZahl1;<br />
int *pZahl2;<br />
int *pZahl3;<br />
cout &lt;&lt; &quot;Geben sie die 1. Zahl ein: &quot;;<br />
cin &gt;&gt; *pZahl1;<br />
cout &lt;&lt; &quot;Geben sie die 2. Zahl ein: &quot;;<br />
cin &gt;&gt; *pZahl2;<br />
cout &lt;&lt; &quot;Geben sie die 3. Zahl ein: &quot;;<br />
cin &gt;&gt; *pZahl3;<br />
}</p>
<p>int ausgabe(int *pZahl1, int *pZahl2, int *pZahl3)<br />
{<br />
cout &lt;&lt; *pZahl1;</p>
<p>}</p>
<p>int main()<br />
{<br />
int *pZahl1;<br />
int *pZahl2;<br />
int *pZahl3;<br />
Eingabe();<br />
ausgabe(pZahl1, pZahl2, pZahl3);<br />
getchar();<br />
return 0;<br />
}</p>
<p>Läst sich auch starten, aber stürzt dann ab!<br />
Wenn ich nur 2 Zahlen eingebe geht alles ordentlich.<br />
Wo ist mein Fehler?</p>
<p>LG David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330548</guid><dc:creator><![CDATA[Davidlocke13]]></dc:creator><pubDate>Wed, 12 Jun 2013 12:37:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 12:40:30 GMT]]></title><description><![CDATA[<p>1. pZahl-Main hat mit pZahl-Eingabe nichts zu tun.<br />
2. Deine Zeiger zeigen auf John Doe. Willst du ihnen nicht sagen, wohin sie zeigen sollen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330550</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 12 Jun 2013 12:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 12:42:45 GMT]]></title><description><![CDATA[<p>Deine Zeiger zeigen ja auch auf nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330551</guid><dc:creator><![CDATA[eddi0815]]></dc:creator><pubDate>Wed, 12 Jun 2013 12:42:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:09:59 GMT]]></title><description><![CDATA[<p>Und falls Du meine beiden Vorposter nicht verstanden haben solltest, hier die Lösung im Nicht-Code-Format: Hau die Zeiger aus der Eingabe()-Funktion raus und übergebe ihr die in der main()-Funktion erstellten Zeiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330555</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:12:08 GMT]]></title><description><![CDATA[<p>...oh.<br />
Und allokiere Speicher!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330556</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:12:38 GMT]]></title><description><![CDATA[<p>deadlöckchen schrieb:</p>
<blockquote>
<p>Und falls Du meine beiden Vorposter nicht verstanden haben solltest, hier die Lösung im Nicht-Code-Format: Hau die Zeiger aus der Eingabe()-Funktion raus und übergebe ihr die in der main()-Funktion erstellten Zeiger.</p>
</blockquote>
<p>Die zeigen aber auch in den Wald.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330557</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:12:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:19:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void Eingabe( int&amp; Zahl1 )
{
  cout &lt;&lt; &quot;Geben sie die 1. Zahl ein: &quot;;
  cin &gt;&gt; Zahl1;
}

int main()
{
 int Zahl1; 
 Eingabe( Zahl1 );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2330563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330563</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:19:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:20:52 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>deadlöckchen schrieb:</p>
<blockquote>
<p>Und falls Du meine beiden Vorposter nicht verstanden haben solltest, hier die Lösung im Nicht-Code-Format: Hau die Zeiger aus der Eingabe()-Funktion raus und übergebe ihr die in der main()-Funktion erstellten Zeiger.</p>
</blockquote>
<p>Die zeigen aber auch in den Wald.</p>
</blockquote>
<p>Jawoll.</p>
<p>Aber die Lösung ist so oder so scheiße, drum fühl ich mich jetzt verantwortlich es nochmal anders auszudrücken: Erstelle in der main()-Funktion drei hundsgewöhnliche Integer und übergebe diese dann per Zeiger. Oder Referenz.</p>
<p>Oder erstelle eine Funktion, die einen einzigen Integer abfragt (aufgepasst, keinen Pointer) und gebe diesen Wert dann schlussendlich zurück.</p>
<p>Sähe dann in etwa so aus: <code>int number = get_input();</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330564</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:20:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:26:38 GMT]]></title><description><![CDATA[<p>deadlöckchen schrieb:</p>
<blockquote>
<p>Sähe dann in etwa so aus: <code>int number = get_input();</code></p>
</blockquote>
<p>Genau. Und die gibt's sogar schon: istream::operator&gt;&gt;. Da die wieder einen istream zurück gibt, kann man die wunderhübsch aneinanderketten:</p>
<pre><code>int foo, bar, baz;
cin &gt;&gt; foo &gt;&gt; bar &gt;&gt; baz;
cout &lt;&lt; foo &lt;&lt; bar &lt;&lt; baz;
</code></pre>
<p>Kurz und übersichtlich.</p>
<p><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="🙂"
    /></p>
<p>Nein, dieser Beitrag ist kein Scherz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330566</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:29:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int input(){
     std::cout &lt;&lt; &quot;Ein paar Buchstaben sind aber sehr sexy!\n&quot;
               &lt;&lt; &quot;Gib jetzt die Zahl ein: &quot;;
     int integer;
     std::cin &gt;&gt; integer;
     return integer;
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      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/2330569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330569</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:29:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:51:53 GMT]]></title><description><![CDATA[<p>Treiben wir es noch eine Eskalationsstufe weiter:</p>
<pre><code>#include &lt;iostream&gt;

class asking_integer
{
  int data;
public:
  operator int() const {return data;}
  friend std::istream&amp; operator&gt;&gt;(std::istream&amp; in, asking_integer &amp;integer)
  {
    *in.tie() &lt;&lt; &quot;Gib eine Zahl ein: &quot;;
    return in &gt;&gt; integer.data;
  }
};

int main()
{
  asking_integer zahl1, zahl2, zahl3;
  std::cin &gt;&gt; zahl1 &gt;&gt; zahl2 &gt;&gt; zahl3;
  std::cout &lt;&lt; zahl1 &lt;&lt; zahl2 &lt;&lt; zahl3;
}
</code></pre>
<p><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="🙂"
    /></p>
<p>P.S.: Ja, ist noch nicht ganz funktional, da das Integer-Interface noch nicht komplett erfüllt wird. Keine Lust auf Schreibarbeit.</p>
<p>P.P.S.: Oder noch eine Stufe weiter:</p>
<pre><code>friend std::istream&amp; operator&gt;&gt;(std::istream&amp; in, asking_integer &amp;integer)
  {
    static int num = 0;
    *in.tie() &lt;&lt; &quot;Gib Zahl &quot; &lt;&lt; ++num &lt;&lt; &quot; ein: &quot;;
    return in &gt;&gt; integer.data;
  }
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330576</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:51:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:56:16 GMT]]></title><description><![CDATA[<p>Mmmh... Aber ist die letzte Stufe nicht thread-unsafe?<br />
Da hätte dann ein <code>std::atomic</code> gut reingepasst, nicht?</p>
<p>Oder ist dieses static-Gefummel nun doch ab C++11 komplett thread-safe geworden (würde mich wundern)?<br />
Im Draft (3337) konnte ich bisher nur finden, dass static initialization thread-safe ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330578</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 13:58:33 GMT]]></title><description><![CDATA[<p>deadlöckchen schrieb:</p>
<blockquote>
<p>Mmmh... Aber ist die letzte Stufe nicht thread-unsafe?<br />
Da hätte dann ein <code>std::atomic</code> gut reingepasst, nicht?</p>
</blockquote>
<p>Ich rede mich mal damit heraus, dass Streamoperationen an sich nicht threadsafe sind (das ist sogar leider richtig <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2330581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330581</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 12 Jun 2013 13:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 14:01:49 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>deadlöckchen schrieb:</p>
<blockquote>
<p>Mmmh... Aber ist die letzte Stufe nicht thread-unsafe?<br />
Da hätte dann ein <code>std::atomic</code> gut reingepasst, nicht?</p>
</blockquote>
<p>Ich rede mich mal damit heraus, dass Streamoperationen an sich nicht threadsafe sind (das ist sogar leider richtig <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>
</blockquote>
<p>Zählt nur für den 11er:</p>
<blockquote>
<p>Concurrent access to a synchronized (§27.5.3.4) standard iostream object’s formatted and unformatted input (§27.7.2.1) and output (§27.7.3.1) functions or a standard C stream by multiple threads shall not result in a data race (§1.10). [ Note: Users must still synchronize concurrent use of these objects and streams by multiple threads if they wish to avoid interleaved characters. — end note ]</p>
</blockquote>
<p>Naja zumindest ins Bein schießen kann man sich mit den iostreams nicht mehr <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330584</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 14:01:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 14:12:12 GMT]]></title><description><![CDATA[<p>deadlöckchen schrieb:</p>
<blockquote>
<p>Zählt nur für den 11er:</p>
<blockquote>
<p>Concurrent access to a synchronized (§27.5.3.4) standard iostream object’s formatted and unformatted input (§27.7.2.1) and output (§27.7.3.1) functions or a standard C stream by multiple threads shall not result in a data race (§1.10). [ Note: Users must still synchronize concurrent use of these objects and streams by multiple threads if they wish to avoid interleaved characters. — end note ]</p>
</blockquote>
<p>Naja zumindest ins Bein schießen kann man sich mit den iostreams nicht mehr <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="🙂"
    /></p>
</blockquote>
<p>Ok, dann bietet sich geradezu threadlocal an. Oder eben doch ein Mutex/Atomic. Es ist mir nämlich nicht direkt klar, wie hier die Semantik sein sollte, ob jeder Thread selber zählt oder ob es einen globalen Zähler gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330589</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 12 Jun 2013 14:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 14:29:55 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Treiben wir es noch eine Eskalationsstufe weiter:</p>
</blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class asking_integer { 
  int data;

  static int xindex() {
    static const int index = std::ios_base::xalloc();
    return index;
  }

public: 
  operator int() const {return data;} 

  template &lt;typename CharT=char, typename Traits&gt;
  friend std::basic_istream&lt;CharT, Traits&gt;&amp;
  operator&gt;&gt;(std::basic_istream&lt;CharT, Traits&gt;&amp; in, asking_integer &amp;integer) 
  { 
    if (in.tie())
      *in.tie() &lt;&lt; &quot;Gib Zahl &quot; &lt;&lt; ++in.iword(asking_integer::xindex()) &lt;&lt; &quot; ein: &quot;;
    return in &gt;&gt; integer.data; 
  } 
};
</code></pre>
<p>Das löst auch das Thread-Problem, weil der Zähler zu dem Eingabestream gehört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330599</guid><dc:creator><![CDATA[escargot]]></dc:creator><pubDate>Wed, 12 Jun 2013 14:29:55 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 14:44:53 GMT]]></title><description><![CDATA[<p>escargot schrieb:</p>
<blockquote>
<pre><code>static const int index = std::ios_base::xalloc();
</code></pre>
</blockquote>
<p>Da fällt mir doch glatt die Kinnlade runter <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="😮"
    /> . xalloc kannte ich noch gar nicht. Klingt ungeheuer nützlich, um damit in Zukunft Schabernack zu treiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330604</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 12 Jun 2013 14:44:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit 3 Zeigern on Wed, 12 Jun 2013 16:02:56 GMT]]></title><description><![CDATA[<p>Darf ich mitmachen? Ich mag mitmachen. <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="😞"
    /><br />
Jetzt wirds quarkig! <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">#include &lt;iostream&gt;
#include &lt;type_traits&gt;
#include &lt;atomic&gt;

namespace{
    template&lt;typename Type, typename = void&gt;
    struct is_queryable : std::false_type {};

    template&lt;typename Type&gt;
    struct is_queryable&lt;Type, typename std::enable_if&lt;std::is_same&lt;std::istream&amp;, decltype(std::declval&lt;std::istream&amp;&gt;() &gt;&gt; std::declval&lt;Type&amp;&gt;())&gt;::value&gt;::type&gt;
        : std::true_type {};

    template&lt;int Counter, typename Head, typename = typename std::enable_if&lt;is_queryable&lt;Head&gt;::value&gt;::type&gt;
    void query_values(Head&amp; head){
        std::cout &lt;&lt; &quot;Gib Zahl #&quot; &lt;&lt; Counter &lt;&lt; &quot; ein: &quot;;
        std::cin &gt;&gt; head;
    }

    template&lt;int Counter, typename Head, typename... Tail, typename = typename std::enable_if&lt;is_queryable&lt;Head&gt;::value&gt;::type&gt;
    void query_values(Head&amp; head, Tail&amp;... tail){
        std::cout &lt;&lt; &quot;Gib Zahl #&quot; &lt;&lt; Counter &lt;&lt; &quot; ein: &quot;;
        std::cin &gt;&gt; head;
        query_values&lt;Counter + 1&gt;(tail...);
    }
}

template&lt;typename Head, typename... Tail&gt;
void query(Head&amp; head, Tail&amp;... tail){
    query_values&lt;1&gt;(head, tail...);
}

int main(){
    int x;
    float y;
    std::string z;

    query(x, y, z);
    std::cout &lt;&lt; x &lt;&lt; y &lt;&lt; z;

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2330638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330638</guid><dc:creator><![CDATA[deadlöckchen]]></dc:creator><pubDate>Wed, 12 Jun 2013 16:02:56 GMT</pubDate></item></channel></rss>