<?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[Vermeidung string iterator not derefencable]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie vermeide ich am sichersten den Laufzeitfehler &quot;string iterator not derefencable&quot; ?</p>
<p>Ich glaube das beim Deserialisieren meines Transferobjektes etwas schief geht, aber ich tue mir relativ schwer zu erkennen wo der Fehler liegen könnte.</p>
<p>Zur Erklärung ich setze jsoncpp ein</p>
<pre><code class="language-cpp">//Umwandlung von JSON
if(jsonValue.isMember(&quot;properties&quot;)){					
			Json::Value propertiesValue(jsonValue.get(&quot;properties&quot;, DUMMY_VALUE));
			for (Json::Value::iterator entry = propertiesValue.begin();
				entry != propertiesValue.end(); entry++)
			{
				Json::Value key = entry.key();
				Json::Value value = propertiesValue[entry.key().asString()];

				if(value.asString() != &quot;&quot;){
					tempProperties[key.asString()]=value.asString();
				}
			}
			adapterSpec.setProperties(tempProperties);
		}
</code></pre>
<pre><code class="language-cpp">//Umwandlung nach JSON
Json::Value propertiesValue(Json::objectValue);
		for (std::map&lt;std::string, std::string&gt;::iterator entry = properties.begin();
				entry != properties.end(); entry++)
		{
			//int in std::string konvertieren
			std::ostringstream osstream;
			osstream &lt;&lt; entry-&gt;first;

			std::string keyValue = osstream.str();

			if(entry-&gt;second != &quot;&quot;){
				propertiesValue[keyValue]=entry-&gt;second;
			}
		}		
		value[&quot;properties&quot;]=propertiesValue;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/303337/vermeidung-string-iterator-not-derefencable</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 13:51:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303337.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 May 2012 07:29:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vermeidung string iterator not derefencable on Fri, 11 May 2012 07:29:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie vermeide ich am sichersten den Laufzeitfehler &quot;string iterator not derefencable&quot; ?</p>
<p>Ich glaube das beim Deserialisieren meines Transferobjektes etwas schief geht, aber ich tue mir relativ schwer zu erkennen wo der Fehler liegen könnte.</p>
<p>Zur Erklärung ich setze jsoncpp ein</p>
<pre><code class="language-cpp">//Umwandlung von JSON
if(jsonValue.isMember(&quot;properties&quot;)){					
			Json::Value propertiesValue(jsonValue.get(&quot;properties&quot;, DUMMY_VALUE));
			for (Json::Value::iterator entry = propertiesValue.begin();
				entry != propertiesValue.end(); entry++)
			{
				Json::Value key = entry.key();
				Json::Value value = propertiesValue[entry.key().asString()];

				if(value.asString() != &quot;&quot;){
					tempProperties[key.asString()]=value.asString();
				}
			}
			adapterSpec.setProperties(tempProperties);
		}
</code></pre>
<pre><code class="language-cpp">//Umwandlung nach JSON
Json::Value propertiesValue(Json::objectValue);
		for (std::map&lt;std::string, std::string&gt;::iterator entry = properties.begin();
				entry != properties.end(); entry++)
		{
			//int in std::string konvertieren
			std::ostringstream osstream;
			osstream &lt;&lt; entry-&gt;first;

			std::string keyValue = osstream.str();

			if(entry-&gt;second != &quot;&quot;){
				propertiesValue[keyValue]=entry-&gt;second;
			}
		}		
		value[&quot;properties&quot;]=propertiesValue;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2210406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2210406</guid><dc:creator><![CDATA[Blubberblase2]]></dc:creator><pubDate>Fri, 11 May 2012 07:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to Vermeidung string iterator not derefencable on Fri, 11 May 2012 07:52:07 GMT]]></title><description><![CDATA[<p>Gehe doch mal mit 'nem Debugger durch, und gucke in welcher Zeile das Ding aussteigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2210413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2210413</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 11 May 2012 07:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to Vermeidung string iterator not derefencable on Fri, 11 May 2012 07:59:50 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Gehe doch mal mit 'nem Debugger durch, und gucke in welcher Zeile das Ding aussteigt.</p>
</blockquote>
<p>Das Problem ist ja das ich<br />
a) Nebenläufigkeit habe<br />
b) korrupten Callstack<br />
c) die Stelle nicht genau lokalisieren kann</p>
<p>In einem Thread läuft er hier noch und in einem anderen scheinbar kracht es. Das Debuggen der Nebenläufigkeit macht mir hier zu schaffen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2210417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2210417</guid><dc:creator><![CDATA[blubberblase2]]></dc:creator><pubDate>Fri, 11 May 2012 07:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to Vermeidung string iterator not derefencable on Fri, 11 May 2012 08:16:51 GMT]]></title><description><![CDATA[<p>blubberblase2 schrieb:</p>
<blockquote>
<p>In einem Thread läuft er hier noch und in einem anderen scheinbar kracht es. Das Debuggen der Nebenläufigkeit macht mir hier zu schaffen.</p>
</blockquote>
<p>Dafür kannst Du Haltepunkte setzen. Setze einen Haltepunkt vor die Stelle, an der Du das Problem vermutest und lass das Programm normal laufen. In dem gezeigten Code werden auch nirgends unmittelbar string-Iteratoren benutzt. Wie soll man dazu also was sagen?<br />
Grundsätzlich scheinen mir aber einige Konstrukte fragwürdig zu sein. Der Teil zum Beispiel:</p>
<pre><code class="language-cpp">//int in std::string konvertieren
            std::ostringstream osstream;
            osstream &lt;&lt; entry-&gt;first;

            std::string keyValue = osstream.str();
</code></pre>
<p>Der Key <em>ist</em> doch schon ein String. Wozu &quot;konvertierst&quot; Du ihn noch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2210424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2210424</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 11 May 2012 08:16:51 GMT</pubDate></item></channel></rss>