<?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[string&#x2F;stringstream per parameter übergeben]]></title><description><![CDATA[<p>hallo,</p>
<p>ich habe schon diesen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-227896.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-227896.html</a> thread gefunden, und dachte, das wär die lösung. leider nicht bei mir...</p>
<p>mein problem:</p>
<pre><code class="language-cpp">//datei.h
class foo
{
  private:
    int i;
  public:
    void bar(std::stringstream s);
};

//datei.cpp
void bar::var(str::stringstream s)
{
  size_t len = s.str().size();
}

//woanders...
foo obj;
std::stringstream stream;
stream &lt;&lt; &quot;test&quot;;
obj.bar(test);
</code></pre>
<p>Fehlermeldung:</p>
<pre><code>error C2248: &quot;std::basic_ios&lt;_Elem,_Traits&gt;::basic_ios&quot;: Kein Zugriff auf private Member, dessen Deklaration in der std::basic_ios&lt;_Elem,_Traits&gt;-Klasse erfolgte.
with
[
  Elem=char,
  _Traits=std::char_traits&lt;char&gt;
]
d:\programme\microsoft visual studio 8\vc\include\ios(151): Siehe Deklaration von 'std::basic_ios&lt;_Elem,_Traits&gt;::basic_ios'
with
[
  _Elem=char,
  _Traits=std::char_traits&lt;char&gt;
]
Diese Diagnose trat in der vom Compiler generierten Funktion &quot;std::basic_stringstream&lt;_Elem,_Traits,_Alloc&gt;::basic_stringstream(const std::basic_stringstream&lt;_Elem,_Traits,_Alloc&gt; &amp;)&quot; auf.
with
[
  _Elem=char,
  _Traits=std::char_traits&lt;char&gt;,
  _Alloc=std::allocator&lt;char&gt;
]
</code></pre>
<p>ich habe jetzt schon mehrfach gelesen, dass stringstream keinen kopierkonstruktor hat, weswegen man es nicht per wert, sondern nur per referenz übergeben kann. also so:</p>
<pre><code class="language-cpp">//datei.h
class foo
{
  private:
    int i;
  public:
    void bar(std::stringstream &amp;s);
};

//datei.cpp
void bar::var(str::stringstream &amp;s)
{
  size_t len = s.str().size();
}
</code></pre>
<p>doch wenn ich das mache, ändert sich nichts an der fehlerausgabe.</p>
<p>ich nutze visual studio 2005 unter xp. danke jetzt schon fürs runterscrollen <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/topic/228956/string-stringstream-per-parameter-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 08:22:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228956.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Dec 2008 22:34:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string&#x2F;stringstream per parameter übergeben on Thu, 04 Dec 2008 22:34:33 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich habe schon diesen <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-227896.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-227896.html</a> thread gefunden, und dachte, das wär die lösung. leider nicht bei mir...</p>
<p>mein problem:</p>
<pre><code class="language-cpp">//datei.h
class foo
{
  private:
    int i;
  public:
    void bar(std::stringstream s);
};

//datei.cpp
void bar::var(str::stringstream s)
{
  size_t len = s.str().size();
}

//woanders...
foo obj;
std::stringstream stream;
stream &lt;&lt; &quot;test&quot;;
obj.bar(test);
</code></pre>
<p>Fehlermeldung:</p>
<pre><code>error C2248: &quot;std::basic_ios&lt;_Elem,_Traits&gt;::basic_ios&quot;: Kein Zugriff auf private Member, dessen Deklaration in der std::basic_ios&lt;_Elem,_Traits&gt;-Klasse erfolgte.
with
[
  Elem=char,
  _Traits=std::char_traits&lt;char&gt;
]
d:\programme\microsoft visual studio 8\vc\include\ios(151): Siehe Deklaration von 'std::basic_ios&lt;_Elem,_Traits&gt;::basic_ios'
with
[
  _Elem=char,
  _Traits=std::char_traits&lt;char&gt;
]
Diese Diagnose trat in der vom Compiler generierten Funktion &quot;std::basic_stringstream&lt;_Elem,_Traits,_Alloc&gt;::basic_stringstream(const std::basic_stringstream&lt;_Elem,_Traits,_Alloc&gt; &amp;)&quot; auf.
with
[
  _Elem=char,
  _Traits=std::char_traits&lt;char&gt;,
  _Alloc=std::allocator&lt;char&gt;
]
</code></pre>
<p>ich habe jetzt schon mehrfach gelesen, dass stringstream keinen kopierkonstruktor hat, weswegen man es nicht per wert, sondern nur per referenz übergeben kann. also so:</p>
<pre><code class="language-cpp">//datei.h
class foo
{
  private:
    int i;
  public:
    void bar(std::stringstream &amp;s);
};

//datei.cpp
void bar::var(str::stringstream &amp;s)
{
  size_t len = s.str().size();
}
</code></pre>
<p>doch wenn ich das mache, ändert sich nichts an der fehlerausgabe.</p>
<p>ich nutze visual studio 2005 unter xp. danke jetzt schon fürs runterscrollen <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/1625704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625704</guid><dc:creator><![CDATA[übergeber]]></dc:creator><pubDate>Thu, 04 Dec 2008 22:34:33 GMT</pubDate></item><item><title><![CDATA[Reply to string&#x2F;stringstream per parameter übergeben on Thu, 04 Dec 2008 23:45:54 GMT]]></title><description><![CDATA[<p>problem gelöst.. ich habe eine funktion übersehen, die einen stringstream als wert zurückgegeben hat (zurückgeben sollte/wollte)... was ja auch nicht geht. und die war halt schuld. ich finde es nur irgendwie doof, dass man halt alle stellen im code nach stringstream abklappern muss und ein doppelklick auf die fehlermeldung mir nicht den &quot;bösen&quot; strinstream anzeigt..<br />
na dann frohes schaffen noch <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/1625725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625725</guid><dc:creator><![CDATA[übergeber]]></dc:creator><pubDate>Thu, 04 Dec 2008 23:45:54 GMT</pubDate></item></channel></rss>