<?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[boost::serialization Probleme mit std::list?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern Bilder mit Boost Serialisieren, was soweit auch schon Funktioniert.<br />
Bei Bildern von einer Dateigröße über 2 Kilobyte stürzt das Programm in der Funktion <em>load</em> einfach ab <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>
<pre><code class="language-cpp">#include &lt;boost/archive/binary_oarchive.hpp&gt; 
#include &lt;boost/archive/binary_iarchive.hpp&gt; 
#include &lt;boost/serialization/string.hpp&gt;
#include &lt;boost/serialization/list.hpp&gt;
#include &lt;boost/serialization/nvp.hpp&gt;
#include &lt;boost/serialization/binary_object.hpp&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt; 
#include &lt;list&gt;

using namespace std;

typedef std::list&lt;char&gt; CharCon;

class testClass 
{ 
public: 
  testClass() 
  {
  } 

  testClass(const std::string &amp;name) 
    : name_(name) 
  {
	  dummystring_ = &quot;dummy&quot;;
  } 

  std::string getName() const 
  { 
	return name_; 
  } 

  CharCon getContainer() const 
  { 
	return dataContainer; 
  }

  void readFile(const std::string &amp;file)
  {
	std::ifstream::pos_type size;	 
	std::ifstream infile(file.c_str(), std::ios::in | std::ios::binary | std::ios::ate);
    if (infile.is_open())
	{
        size = infile.tellg();
        char *buffer = new char[size];
        infile.seekg(0, ios::beg);
        infile.read(buffer, size);
        infile.close();

		dataContainer.resize(size);
		std::copy(buffer, buffer+size, dataContainer.begin() );
		delete [] buffer;
	}
  }

private: 
	friend class boost::serialization::access; 

	template &lt;typename Archive&gt; 
	friend void serialize(Archive &amp;ar, testClass &amp;p, const unsigned int version); 

	std::string name_;
	std::string dummystring_;
	CharCon dataContainer;
}; 

template &lt;typename Archive&gt; 
void serialize(Archive &amp;ar, testClass &amp;p, const unsigned int version) 
{ 
	ar &amp; p.name_;
	//ar &amp; BOOST_SERIALIZATION_NVP(p.dataContainer);
	ar &amp; boost::serialization::make_nvp(&quot;dataContainer&quot;,p.dataContainer);
	ar &amp; p.dummystring_;
} 

void save() 
{ 
	std::ofstream file(&quot;archiv.bin&quot;); 
	boost::archive::binary_oarchive oa(file);

	testClass ts(&quot;foo bar!&quot;);
	ts.readFile(std::string(&quot;test.bmp&quot;));
	oa &lt;&lt; ts;
} 

void load() 
{ 
	std::ifstream file(&quot;archiv.bin&quot;); 
	boost::archive::binary_iarchive ia(file); 

	testClass ts; 
	ia &gt;&gt; ts; 

	std::cout &lt;&lt; &quot;ts name: &quot; &lt;&lt; ts.getName() &lt;&lt; std::endl; 
	std::cout &lt;&lt; &quot;ts dataContainer size: &quot; &lt;&lt; ts.getContainer().size() &lt;&lt; std::endl;
} 

int main()
{
	save(); 
	load(); 
}
</code></pre>
<p>Gibt es eine möglich das dieser Code auch Größere Dateien Serialisieren kann?<br />
Vielen Dank im Voraus <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/topic/300436/boost-serialization-probleme-mit-std-list</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 19:27:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300436.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Mar 2012 16:17:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to boost::serialization Probleme mit std::list? on Sat, 03 Mar 2012 16:17:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern Bilder mit Boost Serialisieren, was soweit auch schon Funktioniert.<br />
Bei Bildern von einer Dateigröße über 2 Kilobyte stürzt das Programm in der Funktion <em>load</em> einfach ab <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>
<pre><code class="language-cpp">#include &lt;boost/archive/binary_oarchive.hpp&gt; 
#include &lt;boost/archive/binary_iarchive.hpp&gt; 
#include &lt;boost/serialization/string.hpp&gt;
#include &lt;boost/serialization/list.hpp&gt;
#include &lt;boost/serialization/nvp.hpp&gt;
#include &lt;boost/serialization/binary_object.hpp&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt; 
#include &lt;list&gt;

using namespace std;

typedef std::list&lt;char&gt; CharCon;

class testClass 
{ 
public: 
  testClass() 
  {
  } 

  testClass(const std::string &amp;name) 
    : name_(name) 
  {
	  dummystring_ = &quot;dummy&quot;;
  } 

  std::string getName() const 
  { 
	return name_; 
  } 

  CharCon getContainer() const 
  { 
	return dataContainer; 
  }

  void readFile(const std::string &amp;file)
  {
	std::ifstream::pos_type size;	 
	std::ifstream infile(file.c_str(), std::ios::in | std::ios::binary | std::ios::ate);
    if (infile.is_open())
	{
        size = infile.tellg();
        char *buffer = new char[size];
        infile.seekg(0, ios::beg);
        infile.read(buffer, size);
        infile.close();

		dataContainer.resize(size);
		std::copy(buffer, buffer+size, dataContainer.begin() );
		delete [] buffer;
	}
  }

private: 
	friend class boost::serialization::access; 

	template &lt;typename Archive&gt; 
	friend void serialize(Archive &amp;ar, testClass &amp;p, const unsigned int version); 

	std::string name_;
	std::string dummystring_;
	CharCon dataContainer;
}; 

template &lt;typename Archive&gt; 
void serialize(Archive &amp;ar, testClass &amp;p, const unsigned int version) 
{ 
	ar &amp; p.name_;
	//ar &amp; BOOST_SERIALIZATION_NVP(p.dataContainer);
	ar &amp; boost::serialization::make_nvp(&quot;dataContainer&quot;,p.dataContainer);
	ar &amp; p.dummystring_;
} 

void save() 
{ 
	std::ofstream file(&quot;archiv.bin&quot;); 
	boost::archive::binary_oarchive oa(file);

	testClass ts(&quot;foo bar!&quot;);
	ts.readFile(std::string(&quot;test.bmp&quot;));
	oa &lt;&lt; ts;
} 

void load() 
{ 
	std::ifstream file(&quot;archiv.bin&quot;); 
	boost::archive::binary_iarchive ia(file); 

	testClass ts; 
	ia &gt;&gt; ts; 

	std::cout &lt;&lt; &quot;ts name: &quot; &lt;&lt; ts.getName() &lt;&lt; std::endl; 
	std::cout &lt;&lt; &quot;ts dataContainer size: &quot; &lt;&lt; ts.getContainer().size() &lt;&lt; std::endl;
} 

int main()
{
	save(); 
	load(); 
}
</code></pre>
<p>Gibt es eine möglich das dieser Code auch Größere Dateien Serialisieren kann?<br />
Vielen Dank im Voraus <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/2188033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188033</guid><dc:creator><![CDATA[OloX]]></dc:creator><pubDate>Sat, 03 Mar 2012 16:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to boost::serialization Probleme mit std::list? on Fri, 09 Mar 2012 21:51:16 GMT]]></title><description><![CDATA[<p>Lösung:</p>
<pre><code class="language-cpp">//...
    std::ofstream file(&quot;archiv.bin&quot;, std::ios::binary);
    //...
    std::ifstream file(&quot;archiv.bin&quot;, std::ios::binary);
    //...
</code></pre>
<p><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/2188117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2188117</guid><dc:creator><![CDATA[OloX]]></dc:creator><pubDate>Fri, 09 Mar 2012 21:51:16 GMT</pubDate></item></channel></rss>