<?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[Variablenmanager in Konsole]]></title><description><![CDATA[<p>Hallo Leute, zuerst meine Inspiration zu der Idee:<br />
Ich arbeite lange mit einer 3D Engine und beim Debug nervt es sehr irgendwelche Variablen jeden Frame neu in die Konsole einzutragen, sodass man eine schöne Liste von Werten hat.<br />
Da ich selbst eine schreibe und gerade die Konsole fertiggestellt habe möchte ich dieser einen Bereich zur Ausgabe von Varibalen bzw. Debuginformation geben.<br />
Es soll so aussehen, dass man z.B Engine::GConsole::Inst()-&gt;ManageValue(&quot;Das Auto fährt:&quot;, meineVariable); einträgt und dann in dem Manager in der Listbox ein Eintrag gemacht wird und sich jedes Frame der Wert mitverändert, sodass man eine schöne Debugleiste hat wo man Debuginformationen auslesen kann.</p>
<p>Jetzt würde ich dafür eine std::map erstellen : std::map&lt; int , std::pair&lt; String, (Typ)&gt; &gt; und zwar soll das int als index für die Listbox dienen, der String ist dann die Information ( z.B &quot;Das Auto fährt&quot;) und jetzt hab ich ein Problem mit dem Typ der Variable. Ich möchte ja z.B int,float,double eigene Vectoren ausgeben und kann keine statische map verwenden und würde mal gerne wissen wie man das machen könnte.Ich habe mir überlegt alle Werte erst in Strings zu konvertieren aber ich brauche ja einen Pointer auf die Variable um beim Update den aktuellen Wert darstellen zu können.</p>
<p>Ich weiß das war jetzt viel Informatiobn aber ich hoffe ihr könnt mir da weiterhelfen.<br />
Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307755/variablenmanager-in-konsole</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 15:57:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307755.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Sep 2012 17:23:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variablenmanager in Konsole on Tue, 04 Sep 2012 17:23:40 GMT]]></title><description><![CDATA[<p>Hallo Leute, zuerst meine Inspiration zu der Idee:<br />
Ich arbeite lange mit einer 3D Engine und beim Debug nervt es sehr irgendwelche Variablen jeden Frame neu in die Konsole einzutragen, sodass man eine schöne Liste von Werten hat.<br />
Da ich selbst eine schreibe und gerade die Konsole fertiggestellt habe möchte ich dieser einen Bereich zur Ausgabe von Varibalen bzw. Debuginformation geben.<br />
Es soll so aussehen, dass man z.B Engine::GConsole::Inst()-&gt;ManageValue(&quot;Das Auto fährt:&quot;, meineVariable); einträgt und dann in dem Manager in der Listbox ein Eintrag gemacht wird und sich jedes Frame der Wert mitverändert, sodass man eine schöne Debugleiste hat wo man Debuginformationen auslesen kann.</p>
<p>Jetzt würde ich dafür eine std::map erstellen : std::map&lt; int , std::pair&lt; String, (Typ)&gt; &gt; und zwar soll das int als index für die Listbox dienen, der String ist dann die Information ( z.B &quot;Das Auto fährt&quot;) und jetzt hab ich ein Problem mit dem Typ der Variable. Ich möchte ja z.B int,float,double eigene Vectoren ausgeben und kann keine statische map verwenden und würde mal gerne wissen wie man das machen könnte.Ich habe mir überlegt alle Werte erst in Strings zu konvertieren aber ich brauche ja einen Pointer auf die Variable um beim Update den aktuellen Wert darstellen zu können.</p>
<p>Ich weiß das war jetzt viel Informatiobn aber ich hoffe ihr könnt mir da weiterhelfen.<br />
Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248493</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Tue, 04 Sep 2012 17:23:40 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Tue, 04 Sep 2012 17:24:42 GMT]]></title><description><![CDATA[<p>Ohh man mir fallen gerade Templates ein.Müsste es damit funktionieren ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248494</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Tue, 04 Sep 2012 17:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Tue, 04 Sep 2012 18:21:26 GMT]]></title><description><![CDATA[<p>Du koenntest einen Zeiger auf die Variable sowie einen Zeiger auf eine Funktion, die diese ausgibt in einer map speichern. Ich dachte da an sowas, ungefaehr:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;unordered_map&gt;
#include &lt;utility&gt;

struct variable_printer
{
	template &lt;typename T&gt;
	void insert(std::string const&amp; name, T&amp; ref)
	{
		variables_[name] = std::make_pair(&amp;ref, &amp;print_impl&lt;T&gt;);
	}

	void print(std::string const&amp; what) const
	{
		auto iter = variables_.find(what);

		if(iter != variables_.end())
			iter-&gt;second.second(iter-&gt;second.first);

		// else ...
	}

private:
	typedef void const volatile variable;

	template &lt;typename T&gt;
	static void print_impl(variable* ptr)
	{
		std::cout &lt;&lt; *static_cast&lt;T*&gt;(ptr);
	}

	std::unordered_map&lt;std::string, std::pair&lt;variable*, void (*) (variable*)&gt;&gt; variables_;
};

int main()
{
	variable_printer printer;

	int const volatile i = 42;
	printer.insert(&quot;i&quot;, i);

	printer.print(&quot;i&quot;);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2248498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248498</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Tue, 04 Sep 2012 18:21:26 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Tue, 04 Sep 2012 18:24:15 GMT]]></title><description><![CDATA[<p><a href="http://codepad.org/UYpAfayd" rel="nofollow">http://codepad.org/UYpAfayd</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248499</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Tue, 04 Sep 2012 18:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Wed, 05 Sep 2012 09:31:09 GMT]]></title><description><![CDATA[<p>Wow danke für die schnelle Antwort.Das mit dem void pointer macht schon Sinn, Danke <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/2248617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248617</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Wed, 05 Sep 2012 09:31:09 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Thu, 06 Sep 2012 18:26:09 GMT]]></title><description><![CDATA[<p>Hei ich hätte da noch eine Frage dazu.Ich würde auch gerne manuell irgendetwas ausgeben könne, wie z.B wenn man einen Vector (selbstgeschrieben ) einsetzt, der dann halt die 3 Werte ausgeben soll.Jetzt ist das Beispiel mit Templates und der wird das nicht convertieren können wie ich wes will.</p>
<p>Muss ich hier ganz anders rangehen und mit überladenen Funktionen arbeiten??<br />
Oder gibts da eine andere Lösung für<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249233</guid><dc:creator><![CDATA[Bob Wolfskin]]></dc:creator><pubDate>Thu, 06 Sep 2012 18:26:09 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Thu, 06 Sep 2012 19:06:26 GMT]]></title><description><![CDATA[<p>Schreib halt nen operator &lt;&lt; fuer vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249243</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Thu, 06 Sep 2012 19:06:26 GMT</pubDate></item><item><title><![CDATA[Reply to Variablenmanager in Konsole on Thu, 06 Sep 2012 22:33:50 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich hätte zu dem Code, den Kellerautomat geposted hat eine Frage.<br />
Was bedeutet dieses Konstrukt:</p>
<pre><code class="language-cpp">typedef void const volatile variable;
</code></pre>
<p>Ich habe mir einmal durchgelesen was <code>volatile</code> bedeutet. Wenn ich jedoch diese Verwendung sehen, vermute ich das ich es doch nicht verstanden habe. Was ist das eigentlich für ein Datentyp:</p>
<pre><code class="language-cpp">void const volatile
</code></pre>
<p>So was habe ich noch nie gesehen, darum würde mich interessieren, was das ist und warum das hier so gemacht wurde.</p>
<p>So wie ich das verstehe, ist das ein leerer konstanter, vom Kompiler nicht optimierbarer Datentyp... Mmh, Das hört sich irgendwie nicht richtig an.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2249272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2249272</guid><dc:creator><![CDATA[create_problem]]></dc:creator><pubDate>Thu, 06 Sep 2012 22:33:50 GMT</pubDate></item></channel></rss>