<?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[Verschachtelte Structs generisch verarbeiten]]></title><description><![CDATA[<p>Muss nochmal zu meiner Frage zurückkommen.</p>
<p>Gibt es eine Möglichkeit bei ineinander geschachtelten Structs auf die einzelnen Elemente &quot;generisch&quot; zuzugreifen, um mit ihnen zu operieren?</p>
<p><strong>Beispiel</strong></p>
<pre><code>struct A {
  int a;
  int b;
  // etc.
};

struct B {
  int a;
  A b;
  // etc.
};
</code></pre>
<p>Sobald ich zB in Struct A ein Element hinzufüge, muss ich im weiteren Code extra Zeilen schreiben (Copy and Paste) die das neu hinzugefügte Element bearbeiten.</p>
<p><strong>Hintergrund</strong></p>
<p>Es geht um die mx-Funktionen in Matlab, mit denen kommuniziert werden soll. Sobald sich die Structs in C++ ändern, muss der Code wieder angepasst werden.</p>
<p>Ich vermute RTTI ist nicht der richtige Weg, wie sieht es mit einer Lösung zur Compilezeit aus, um durch die verschachtelten Strukturen &quot;generisch&quot; durchzugehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/331066/verschachtelte-structs-generisch-verarbeiten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 23:03:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331066.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Feb 2015 12:29:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verschachtelte Structs generisch verarbeiten on Mon, 09 Feb 2015 12:29:34 GMT]]></title><description><![CDATA[<p>Muss nochmal zu meiner Frage zurückkommen.</p>
<p>Gibt es eine Möglichkeit bei ineinander geschachtelten Structs auf die einzelnen Elemente &quot;generisch&quot; zuzugreifen, um mit ihnen zu operieren?</p>
<p><strong>Beispiel</strong></p>
<pre><code>struct A {
  int a;
  int b;
  // etc.
};

struct B {
  int a;
  A b;
  // etc.
};
</code></pre>
<p>Sobald ich zB in Struct A ein Element hinzufüge, muss ich im weiteren Code extra Zeilen schreiben (Copy and Paste) die das neu hinzugefügte Element bearbeiten.</p>
<p><strong>Hintergrund</strong></p>
<p>Es geht um die mx-Funktionen in Matlab, mit denen kommuniziert werden soll. Sobald sich die Structs in C++ ändern, muss der Code wieder angepasst werden.</p>
<p>Ich vermute RTTI ist nicht der richtige Weg, wie sieht es mit einer Lösung zur Compilezeit aus, um durch die verschachtelten Strukturen &quot;generisch&quot; durchzugehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2441961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2441961</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Mon, 09 Feb 2015 12:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Structs generisch verarbeiten on Mon, 09 Feb 2015 12:57:02 GMT]]></title><description><![CDATA[<p>Mit dem Makro offsetof könntest Du Dir ein Array bauen, über das Du iterierst. Sind dann zwar immer noch zwei Stellen, aber die können nah beieinander stehen.</p>
<p>Mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2441965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2441965</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Mon, 09 Feb 2015 12:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Structs generisch verarbeiten on Mon, 09 Feb 2015 13:02:45 GMT]]></title><description><![CDATA[<p>Wenn ich offsetof richtig verstanden habe, muss ich damit jeden Offset einzeln ermitteln, also eine Änderung in einer der Strukturen erfordert Anpassung der Offsetberechnungen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2441967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2441967</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Mon, 09 Feb 2015 13:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Structs generisch verarbeiten on Mon, 09 Feb 2015 13:31:55 GMT]]></title><description><![CDATA[<p>Man kann mit <a href="http://www.boost.org/doc/libs/1_57_0/libs/fusion/doc/html/fusion/adapted/define_struct.html" rel="nofollow">Boost Fusion</a> Strukturen so definieren, dass man über deren Elemente iterieren kann. Vielleicht suchst du genau das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2441971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2441971</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Mon, 09 Feb 2015 13:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelte Structs generisch verarbeiten on Mon, 09 Feb 2015 14:10:37 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>Man kann mit <a href="http://www.boost.org/doc/libs/1_57_0/libs/fusion/doc/html/fusion/adapted/define_struct.html" rel="nofollow">Boost Fusion</a> Strukturen so definieren, dass man über deren Elemente iterieren kann. Vielleicht suchst du genau das.</p>
</blockquote>
<p>Boost Fusion sieht interessant aus. Allerdings müssten dafür alle verschachtelten Strukturen in das entsprechende Format umgewandelt werden. Aktuell sind es einige Duzend verschachtelte Strukturen, weshalb ich versuchen werde, diese zu parsen (das Header-File) und die Boost Fusion Structs automatisch in ein Header zu schreiben.</p>
<p>Gibts eine Alternative zum Parsen der Structs, ohne aufwendig ein eigenes Modul via Regex zu schreiben?</p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/2441976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2441976</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Mon, 09 Feb 2015 14:10:37 GMT</pubDate></item></channel></rss>