<?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[basic_string&amp;lt;int&amp;gt; Fehler]]></title><description><![CDATA[<p>Hi everyone</p>
<p>Auf meinem Hauptcomputer kompiliert folgende Funktion makellos:</p>
<pre><code class="language-cpp">120: ValuePtr Dif::asBCD(basic_string&lt;int&gt; &amp;data, unsigned int size) const {
121:     size /= 2;
122:     basic_string&lt;int&gt; lvarData = list_of(0xC0 + size);
123:     for(unsigned int i = 0; i &lt; size; ++i) {
124:         lvarData.push_back(data.at(i));
125:     }
126:     data.erase(0, size);
127:     return LVAR(lvarData).getValue();
128: }
</code></pre>
<p>Wenn ich das aber mit gcc 3.2 auf eine embedded Plattform kompiliere, erhalte ich folgende Fehlermeldung:</p>
<pre><code>arm-linux-g++ -O3 -Wall -c -fmessage-length=0 -I/var/lib/hudson/jobs/emc/workspace/emc/src/main/include -I/var/lib/c++/boost/boost_1_42_0/target/uc-7112-plus/include -DBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -MMD -MP -MF&quot;src/main/com/emc/format/mbus/Dif.d&quot; -MT&quot;src/main/com/emc/format/mbus/Dif.d&quot; -o&quot;src/main/com/emc/format/mbus/Dif.o&quot; &quot;../src/main/com/emc/format/mbus/Dif.cpp&quot;
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h: In instantiation of `std::iterator_traits':
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:624:   instantiated from `std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp; std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::replace(__gnu_cxx::__normal_iterator &gt;, __gnu_cxx::__normal_iterator &gt;, _InputIterator, _InputIterator) [with _InputIterator = int, _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]'
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:496:   instantiated from `void std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::push_back(_CharT) [with _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]'
../src/main/com/emc/format/mbus/Dif.cpp:124:   instantiated from here
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:126: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:127: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:128: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:129: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:130: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h: In member function `std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp; std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::replace(__gnu_cxx::__normal_iterator &gt;, __gnu_cxx::__normal_iterator &gt;, _InputIterator, _InputIterator) [with _InputIterator = int, _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]':
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:496:   instantiated from `void std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::push_back(_CharT) [with _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]'
../src/main/com/emc/format/mbus/Dif.cpp:124:   instantiated from here
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:624: error: no type named `iterator_category' in `struct std::iterator_traits'
make: *** [src/main/com/emc/format/mbus/Dif.o] Error 1
</code></pre>
<p>Der Fehler scheint auf Zeile 124, bei der push_back-Anweisung zu entstehen. Mache ich da irgendwas falsch? Darf ich basic_string nicht mit int verwendent?</p>
<p>Besten Dank für jede Antwort und Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265254/basic_string-lt-int-gt-fehler</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 07:36:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265254.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Apr 2010 09:06:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to basic_string&amp;lt;int&amp;gt; Fehler on Tue, 20 Apr 2010 09:06:37 GMT]]></title><description><![CDATA[<p>Hi everyone</p>
<p>Auf meinem Hauptcomputer kompiliert folgende Funktion makellos:</p>
<pre><code class="language-cpp">120: ValuePtr Dif::asBCD(basic_string&lt;int&gt; &amp;data, unsigned int size) const {
121:     size /= 2;
122:     basic_string&lt;int&gt; lvarData = list_of(0xC0 + size);
123:     for(unsigned int i = 0; i &lt; size; ++i) {
124:         lvarData.push_back(data.at(i));
125:     }
126:     data.erase(0, size);
127:     return LVAR(lvarData).getValue();
128: }
</code></pre>
<p>Wenn ich das aber mit gcc 3.2 auf eine embedded Plattform kompiliere, erhalte ich folgende Fehlermeldung:</p>
<pre><code>arm-linux-g++ -O3 -Wall -c -fmessage-length=0 -I/var/lib/hudson/jobs/emc/workspace/emc/src/main/include -I/var/lib/c++/boost/boost_1_42_0/target/uc-7112-plus/include -DBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -MMD -MP -MF&quot;src/main/com/emc/format/mbus/Dif.d&quot; -MT&quot;src/main/com/emc/format/mbus/Dif.d&quot; -o&quot;src/main/com/emc/format/mbus/Dif.o&quot; &quot;../src/main/com/emc/format/mbus/Dif.cpp&quot;
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h: In instantiation of `std::iterator_traits':
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:624:   instantiated from `std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp; std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::replace(__gnu_cxx::__normal_iterator &gt;, __gnu_cxx::__normal_iterator &gt;, _InputIterator, _InputIterator) [with _InputIterator = int, _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]'
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:496:   instantiated from `void std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::push_back(_CharT) [with _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]'
../src/main/com/emc/format/mbus/Dif.cpp:124:   instantiated from here
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:126: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:127: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:128: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:129: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/stl_iterator_base_types.h:130: error: `int' is not a class, struct, or union type
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h: In member function `std::basic_string&lt;_CharT, _Traits, _Alloc&gt;&amp; std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::replace(__gnu_cxx::__normal_iterator &gt;, __gnu_cxx::__normal_iterator &gt;, _InputIterator, _InputIterator) [with _InputIterator = int, _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]':
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:496:   instantiated from `void std::basic_string&lt;_CharT, _Traits, _Alloc&gt;::push_back(_CharT) [with _CharT = int, _Traits = std::char_traits, _Alloc = std::allocator]'
../src/main/com/emc/format/mbus/Dif.cpp:124:   instantiated from here
/var/toolchains/uc-7112-plus/arm-linux/include/c++/3.3.2/bits/basic_string.h:624: error: no type named `iterator_category' in `struct std::iterator_traits'
make: *** [src/main/com/emc/format/mbus/Dif.o] Error 1
</code></pre>
<p>Der Fehler scheint auf Zeile 124, bei der push_back-Anweisung zu entstehen. Mache ich da irgendwas falsch? Darf ich basic_string nicht mit int verwendent?</p>
<p>Besten Dank für jede Antwort und Grüsse<br />
Kessi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885573</guid><dc:creator><![CDATA[Kessi-MC]]></dc:creator><pubDate>Tue, 20 Apr 2010 09:06:37 GMT</pubDate></item><item><title><![CDATA[Reply to basic_string&amp;lt;int&amp;gt; Fehler on Tue, 20 Apr 2010 09:24:37 GMT]]></title><description><![CDATA[<p>Vermutlich ist auf der Embedded-Plattform keine Spezialisierung für <code>std::char_traits&lt;int&gt;</code> definiert.<br />
Nach Standard sind nur Spezialisierungen für <code>char</code> und <code>wchar_t</code> zwingend. Alles andere ist Compilerabhängig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885592</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 20 Apr 2010 09:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to basic_string&amp;lt;int&amp;gt; Fehler on Tue, 20 Apr 2010 09:45:00 GMT]]></title><description><![CDATA[<p>Das könnte ich mir sogar gut vorstellen, ja. Gibt es eine Möglichkeit, diese Spezialisierung selbst zur Verfügung zu stellen? Indem ich sie z.B. von meinem Host-gcc kopiere?</p>
<p>Komisch ist auch, dass ich basic_string&lt;int&gt; schon vorher im Code verwende, der Fehler aber erst an dieser Stelle auftritt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885602</guid><dc:creator><![CDATA[Kessi-MC]]></dc:creator><pubDate>Tue, 20 Apr 2010 09:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to basic_string&amp;lt;int&amp;gt; Fehler on Tue, 20 Apr 2010 10:32:05 GMT]]></title><description><![CDATA[<p>Du verwendest den String, ja. Aber nicht die Traits, auf die der String nur in bestimmten Fällen zugreift. schau dir im netz mal an wie die char_traits aussehn müssen, dann kannst du entweder std::char_traits&lt;int&gt; spezialisieren (man darf zwar nichts im namespace std definieren, aber vollständige Spezialisierungen von Templates sind ne Ausnahme) oder du gibst dem basic_string deine int_traits als templateparameter mit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885623</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 20 Apr 2010 10:32:05 GMT</pubDate></item></channel></rss>