<?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[[GELÖST] Boost Serialisierung unter VC 2005 löst STATIC_ASSERTION_FAILURE aus]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich arbeite zum ersten mal mit Boost::Serialization. Dazu habe ich mir ein einfaches Test-Programm gebastelt:</p>
<pre><code class="language-cpp">class Test
{
	friend class boost::serialization::access;
public:
	Test(int i, double d, const std::string&amp; t, const std::vector&lt;std::string&gt;&amp; v) : _ganz(i), _fliess(d), _name(t), _vec(v) {}
	Test() : _ganz(23), _fliess(42.23), _name(&quot;Hallo&quot;), _vec(4)
	{
		_vec.push_back(&quot;Hallo&quot;);
		_vec.push_back(&quot;das&quot;);
		_vec.push_back(&quot;ist&quot;);
		_vec.push_back(&quot;Super!&quot;);
	}

protected:

    template&lt;class Archive&gt;
    void serialize(Archive&amp; ar, const unsigned int version) const
    {
        ar &amp; BOOST_SERIALIZATION_NVP(_vec) &amp; BOOST_SERIALIZATION_NVP(_fliess) &amp; BOOST_SERIALIZATION_NVP(_ganz) &amp; BOOST_SERIALIZATION_NVP(_name);
    }

	int			_ganz;
	double		_fliess;
	std::string _name;
	std::vector&lt;std::string&gt; _vec;
};

int main(int argc, char* argv[])
{
	const char* filename = &quot;C:\\temp.xml&quot;;
	{
		Test s();

		// make an archive
		std::ofstream ofs(filename);
		assert(ofs.good());
		boost::archive::xml_oarchive oa(ofs);
		oa &lt;&lt; BOOST_SERIALIZATION_NVP(s);
	}

	{
		Test s();

		// open the archive
		std::ifstream ifs(filename);
		assert(ifs.good());
		boost::archive::xml_iarchive ia(ifs);

		// restore the schedule from the archive
	    ia &gt;&gt; BOOST_SERIALIZATION_NVP(s);
	}

	int i = 0;
	std::cin &gt;&gt; i;
	return 0;
}
</code></pre>
<p>Allerdings bekomme ich bei diesem Code mit den entsprechenden Includes unter dem VC++ 2005 Compiler folgenden Fehler:</p>
<blockquote>
<p>boost_1_34_1\boost/archive/detail/oserializer.hpp(315) : error C2027: Verwendung des undefinierten Typs &quot;boost::STATIC_ASSERTION_FAILURE&lt;x&gt;&quot;<br />
with<br />
[<br />
x=false<br />
]<br />
boost_1_34_1\boost/archive/detail/oserializer.hpp(309): Bei der Kompilierung der Klassen-template der void boost::archive::detail::save_non_pointer_type&lt;Archive,T&gt;::invoke(Archive &amp;,T (__cdecl &amp;))-Memberfunktion<br />
with<br />
[<br />
Archive=boost::archive::xml_oarchive,<br />
T=Test (void)<br />
]<br />
boost_1_34_1\boost/archive/detail/oserializer.hpp(535): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template &quot;boost::archive::detail::save_non_pointer_type&lt;Archive,T&gt;&quot;.<br />
with<br />
[<br />
Archive=boost::archive::xml_oarchive,<br />
T=Test (void)<br />
]<br />
boost_1_34_1\boost/archive/detail/common_oarchive.hpp(62): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template &quot;void boost::archive::save&lt;Archive,T&gt;(Archive &amp;,T (__cdecl &amp;))&quot;.<br />
with<br />
[<br />
Archive=boost::archive::xml_oarchive,<br />
T=Test (void)<br />
]</p>
</blockquote>
<p>Habe schon versucht mittels BOOST_CLASS_IMPLEMENTATION den Implementation-Level explizit auf object_class_info zu setzen und das Tracking auszuschalten (BOOST_CLASS_TRACKING mit track_never).<br />
Beides jedoch ohne Erfolg.</p>
<p>Wie bekomme ich Boost::Serialization ans Laufen?</p>
<p>Mfg NeuroCoder</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201003/gelöst-boost-serialisierung-unter-vc-2005-löst-static_assertion_failure-aus</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 11:48:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201003.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Dec 2007 21:24:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [GELÖST] Boost Serialisierung unter VC 2005 löst STATIC_ASSERTION_FAILURE aus on Sun, 23 Dec 2007 21:55:17 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich arbeite zum ersten mal mit Boost::Serialization. Dazu habe ich mir ein einfaches Test-Programm gebastelt:</p>
<pre><code class="language-cpp">class Test
{
	friend class boost::serialization::access;
public:
	Test(int i, double d, const std::string&amp; t, const std::vector&lt;std::string&gt;&amp; v) : _ganz(i), _fliess(d), _name(t), _vec(v) {}
	Test() : _ganz(23), _fliess(42.23), _name(&quot;Hallo&quot;), _vec(4)
	{
		_vec.push_back(&quot;Hallo&quot;);
		_vec.push_back(&quot;das&quot;);
		_vec.push_back(&quot;ist&quot;);
		_vec.push_back(&quot;Super!&quot;);
	}

protected:

    template&lt;class Archive&gt;
    void serialize(Archive&amp; ar, const unsigned int version) const
    {
        ar &amp; BOOST_SERIALIZATION_NVP(_vec) &amp; BOOST_SERIALIZATION_NVP(_fliess) &amp; BOOST_SERIALIZATION_NVP(_ganz) &amp; BOOST_SERIALIZATION_NVP(_name);
    }

	int			_ganz;
	double		_fliess;
	std::string _name;
	std::vector&lt;std::string&gt; _vec;
};

int main(int argc, char* argv[])
{
	const char* filename = &quot;C:\\temp.xml&quot;;
	{
		Test s();

		// make an archive
		std::ofstream ofs(filename);
		assert(ofs.good());
		boost::archive::xml_oarchive oa(ofs);
		oa &lt;&lt; BOOST_SERIALIZATION_NVP(s);
	}

	{
		Test s();

		// open the archive
		std::ifstream ifs(filename);
		assert(ifs.good());
		boost::archive::xml_iarchive ia(ifs);

		// restore the schedule from the archive
	    ia &gt;&gt; BOOST_SERIALIZATION_NVP(s);
	}

	int i = 0;
	std::cin &gt;&gt; i;
	return 0;
}
</code></pre>
<p>Allerdings bekomme ich bei diesem Code mit den entsprechenden Includes unter dem VC++ 2005 Compiler folgenden Fehler:</p>
<blockquote>
<p>boost_1_34_1\boost/archive/detail/oserializer.hpp(315) : error C2027: Verwendung des undefinierten Typs &quot;boost::STATIC_ASSERTION_FAILURE&lt;x&gt;&quot;<br />
with<br />
[<br />
x=false<br />
]<br />
boost_1_34_1\boost/archive/detail/oserializer.hpp(309): Bei der Kompilierung der Klassen-template der void boost::archive::detail::save_non_pointer_type&lt;Archive,T&gt;::invoke(Archive &amp;,T (__cdecl &amp;))-Memberfunktion<br />
with<br />
[<br />
Archive=boost::archive::xml_oarchive,<br />
T=Test (void)<br />
]<br />
boost_1_34_1\boost/archive/detail/oserializer.hpp(535): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template &quot;boost::archive::detail::save_non_pointer_type&lt;Archive,T&gt;&quot;.<br />
with<br />
[<br />
Archive=boost::archive::xml_oarchive,<br />
T=Test (void)<br />
]<br />
boost_1_34_1\boost/archive/detail/common_oarchive.hpp(62): Siehe Verweis auf die Instanziierung der gerade kompilierten Funktions-template &quot;void boost::archive::save&lt;Archive,T&gt;(Archive &amp;,T (__cdecl &amp;))&quot;.<br />
with<br />
[<br />
Archive=boost::archive::xml_oarchive,<br />
T=Test (void)<br />
]</p>
</blockquote>
<p>Habe schon versucht mittels BOOST_CLASS_IMPLEMENTATION den Implementation-Level explizit auf object_class_info zu setzen und das Tracking auszuschalten (BOOST_CLASS_TRACKING mit track_never).<br />
Beides jedoch ohne Erfolg.</p>
<p>Wie bekomme ich Boost::Serialization ans Laufen?</p>
<p>Mfg NeuroCoder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424963</guid><dc:creator><![CDATA[NeuroCoder]]></dc:creator><pubDate>Sun, 23 Dec 2007 21:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to [GELÖST] Boost Serialisierung unter VC 2005 löst STATIC_ASSERTION_FAILURE aus on Sun, 23 Dec 2007 21:54:52 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Problem gelöst:</p>
<pre><code class="language-cpp">// Statt
Test s();
// habe ich einfach
Test s;
// genommen

// Zusätzlich muss allerdings noch das const in der serialize Funktion entfernt werden:
    template&lt;class Archive&gt;
    void serialize(Archive&amp; ar, const unsigned int version)
    {
        ar &amp; BOOST_SERIALIZATION_NVP(_vec) /* etc */;
    }
</code></pre>
<p>Mfg NeuroCoder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1425399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425399</guid><dc:creator><![CDATA[NeuroCoder]]></dc:creator><pubDate>Sun, 23 Dec 2007 21:54:52 GMT</pubDate></item></channel></rss>