<?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[Auf enum als Member zugreifen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich tue mich etwas schwer mit enum, was ich in einer Klasse verwende. Ich habe:</p>
<pre><code>//main.cpp
#include &quot;APD.h&quot;
using namespace std;
(...)
vector&lt;APD&gt; apdvec;	
APD apd;
(...)
apdvec.push_back(apd);	
for(unsigned long int i=0;i&lt;apdvec.size();i++)
{
	int matched_i = apdvec[i].getmatch();
}
(...)

//APD.h
#ifndef APD_H
#define APD_H
#include &lt;iostream&gt;
using namespace std;

class APD
{
	public:
		APD();
(...)
		enum Matched{yet_not_matched,already_matched};
		Matched getmatch() const;
		void setmatch(Matched a_matched);

	private:
		Matched m_matched;
(...)
};
#endif

//APD.cpp
#include &lt;string&gt;
#include &lt;limits&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &quot;APD.h&quot;
using namespace std;

	APD::APD()
	{
(...)
		m_matched=yet_not_matched;
	}
(...)

	APD::Matched APD::getmatch() const
	{
		return m_matched;

	}
	void APD::setmatch(Matched a_matched)
	{
		m_matched=a_matched;
	}
(...)
</code></pre>
<p>Ich würde gerne m_matched mittels &quot;yet_not_matched&quot; oder &quot;already_matched&quot; ändern/abfragen. Wenn ich in main dann aber getmach() bzw. apdvec[i].getmatch() aufrufe, erhalte ich 578248136. Habe auch schon Diverses ausprobiert, aber da erhalte ich dann lediglich 1 als Wert.Unabh. davon, wie ich m_matched initialisiere..<br />
Für jede Hilfe bin ich dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/340114/auf-enum-als-member-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 12:22:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340114.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Oct 2016 22:06:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Wed, 19 Oct 2016 22:10:08 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich tue mich etwas schwer mit enum, was ich in einer Klasse verwende. Ich habe:</p>
<pre><code>//main.cpp
#include &quot;APD.h&quot;
using namespace std;
(...)
vector&lt;APD&gt; apdvec;	
APD apd;
(...)
apdvec.push_back(apd);	
for(unsigned long int i=0;i&lt;apdvec.size();i++)
{
	int matched_i = apdvec[i].getmatch();
}
(...)

//APD.h
#ifndef APD_H
#define APD_H
#include &lt;iostream&gt;
using namespace std;

class APD
{
	public:
		APD();
(...)
		enum Matched{yet_not_matched,already_matched};
		Matched getmatch() const;
		void setmatch(Matched a_matched);

	private:
		Matched m_matched;
(...)
};
#endif

//APD.cpp
#include &lt;string&gt;
#include &lt;limits&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &quot;APD.h&quot;
using namespace std;

	APD::APD()
	{
(...)
		m_matched=yet_not_matched;
	}
(...)

	APD::Matched APD::getmatch() const
	{
		return m_matched;

	}
	void APD::setmatch(Matched a_matched)
	{
		m_matched=a_matched;
	}
(...)
</code></pre>
<p>Ich würde gerne m_matched mittels &quot;yet_not_matched&quot; oder &quot;already_matched&quot; ändern/abfragen. Wenn ich in main dann aber getmach() bzw. apdvec[i].getmatch() aufrufe, erhalte ich 578248136. Habe auch schon Diverses ausprobiert, aber da erhalte ich dann lediglich 1 als Wert.Unabh. davon, wie ich m_matched initialisiere..<br />
Für jede Hilfe bin ich dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512203</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Wed, 19 Oct 2016 22:10:08 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 06:03:37 GMT]]></title><description><![CDATA[<p>Problem ist an deinem Code nicht nachvollziehbar, <a href="https://ideone.com/41uCk2" rel="nofollow">er funktioniert fein</a>. Bitte vollständiges, compilierbares(!) Minimalbeispiel bringen und prüfen, ob es den Fehler reproduziert. Siehe:<br />
<a href="https://www.c-plusplus.net/forum/304133">Wie man Probleme nachstellbar und nachvollziehbar macht</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512223</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 20 Oct 2016 06:03:37 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 11:54:25 GMT]]></title><description><![CDATA[<p>Interessante Seite, ich gehe allem dann/nochmal nach.<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512253</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 11:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 19:20:43 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Problem ist an deinem Code nicht nachvollziehbar, <a href="https://ideone.com/41uCk2" rel="nofollow">er funktioniert fein</a>. Bitte vollständiges, compilierbares(!) Minimalbeispiel bringen und prüfen, ob es den Fehler reproduziert. Siehe:<br />
<a href="https://www.c-plusplus.net/forum/304133">Wie man Probleme nachstellbar und nachvollziehbar macht</a></p>
</blockquote>
<p>Mein Problem ist m.E.n. in dem letzten Link nicht beschrieben. Ist sehr wahrscheinlich ein Anwendungs-/Anwenderfehler..</p>
<p>Alles, was man benötigt:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;limits&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
using namespace std;

class APD
{
	public:
		APD();	
		APD(ifstream&amp; input);	
		~APD();					

		int getSN() const;
		void setSN(int a_SN);

		enum Matched{yet_not_matched,already_matched};
		Matched getmatch() const;
		void setmatch(Matched a_matched);		

		void print() const; 

	private:
		int m_SN;
		Matched m_matched;
};

APD::APD()
{
	m_SN=0.; 
	m_matched=yet_not_matched;
}

APD::~APD(){}	

APD::APD(ifstream&amp; input)	
{
	while(!input.eof()) 
	{			
		if(isdigit(input.peek()))	
		{
			break;	
		}		
		else input.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');		
	}
	input &gt;&gt; m_SN;
}

int APD::getSN() const 
{
	return m_SN;
}
void APD::setSN(int a_SN) 
{	
	m_SN=a_SN;	
}

APD::Matched APD::getmatch() const
{
	return m_matched;
}

void APD::setmatch(Matched a_matched)
{
	m_matched=a_matched;
}

int Min()
{    
	cout&lt;&lt;endl;
	const char *INPUTFILE=&quot;Test.txt&quot;; 

	ifstream input(INPUTFILE);
	if(!input)								
	{
		cerr &lt;&lt; &quot;File \&quot;&quot; &lt;&lt; INPUTFILE &lt;&lt; &quot;\&quot; not found\n \a&quot; &lt;&lt; endl; 
		return(-1);
	}
	else cout &lt;&lt; &quot;Open \&quot;&quot; &lt;&lt; INPUTFILE &lt;&lt; &quot;\&quot; as input&quot; &lt;&lt; endl;

	vector&lt;APD&gt; apdvec;	

	for(int i=0; !input.eof();i++)
	{
		APD apd(input);		
		apdvec.push_back(apd);		
	}

	if(apdvec.size()==0)
	{
		cout &lt;&lt; &quot;Reading from \&quot;&quot; &lt;&lt; INPUTFILE &lt;&lt; &quot;\&quot; failed. No parameters found. \a&quot; &lt;&lt; endl; 
		return(-1);
	}
	cout &lt;&lt; apdvec.size() &lt;&lt; &quot; APDs read out&quot; &lt;&lt; endl;	

	int SN_i;
	int matched_i;

	for(unsigned long int i=0;i&lt;apdvec.size();i++)
	{
		SN_i = apdvec[i].getSN();
		matched_i = apdvec[i].getmatch();
		cout &lt;&lt; SN_i &lt;&lt; &quot; already matched ?   &quot; &lt;&lt; matched_i &lt;&lt; endl;
	}

	cout&lt;&lt;endl;
	return 0; 
}
</code></pre>
<p>Was ich letztlich bewirken möchte: Objekte der Klasse APD sollen bei der Eigenschaft enum Matched ausgeben, ob sie entweder &quot;already_matched&quot; oder &quot;yet_not_matched&quot; sind. Und dies vice versa auch setzen zu können. Aber das Abfragen klappt ja bereits nicht. Bei &quot;cout &lt;&lt; SN_i &lt;&lt; &quot; already matched ? &quot; &lt;&lt; matched_i &lt;&lt; endl;&quot; erscheint dann für matched_i 32651 (wo aber ja eigentlich &quot;already_matched&quot; oder &quot;yet_not_matched&quot; erscheinen soll).</p>
<p>Die (Test-)datei zum Einlesen ist auf <a href="http://workupload.com/file/KKxMRXm" rel="nofollow">http://workupload.com/file/KKxMRXm</a> verfügbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512315</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 19:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 20:25:33 GMT]]></title><description><![CDATA[<p>Dein Programm hat diverse Fehler.</p>
<p>1. kein main (zum Nachvollziehen). Soll &quot;Min&quot; die main-Funktion sein?</p>
<p>2. Es wird nie setmatch aufgerufen, daher ist m_matched auch niemals initialisiert worden. Der Wert setzt sich nicht magisch von allein!</p>
<p>3. Deine Einleselogik ist falsch.<br />
3.1 Schleifen mit <code>while(!stream.eof())</code> funktionieren nicht, weil eof immer erst NACH fehlgeschlagenem Einlesen gesetzt wird.<br />
3.2 APD-Konstruktor mit stream ist nicht sinnvoll - du weißt doch gar nicht, ob aus dem Stream noch ein APD-Objekt erfolgreich eingelesen werden kann!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512327</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Thu, 20 Oct 2016 20:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 21:25:35 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>Dein Programm hat diverse Fehler.</p>
<p>1. kein main (zum Nachvollziehen). Soll &quot;Min&quot; die main-Funktion sein?</p>
<p>2. Es wird nie setmatch aufgerufen, daher ist m_matched auch niemals initialisiert worden. Der Wert setzt sich nicht magisch von allein!</p>
<p>3. Deine Einleselogik ist falsch.<br />
3.1 Schleifen mit <code>while(!stream.eof())</code> funktionieren nicht, weil eof immer erst NACH fehlgeschlagenem Einlesen gesetzt wird.<br />
3.2 APD-Konstruktor mit stream ist nicht sinnvoll - du weißt doch gar nicht, ob aus dem Stream noch ein APD-Objekt erfolgreich eingelesen werden kann!</p>
</blockquote>
<p>Schonmal danke!</p>
<p>1. Mein Compiler wollte das als &quot;main&quot; irgendwie nicht. So ging es dann <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="😃"
    /> Im &quot;richtigen&quot; Code steht es auch als main, da lasse ich das alles aber per makefile zusammenfügen.</p>
<p>2. Tue ich das nicht per</p>
<pre><code>APD::APD()
{
    m_SN=0.;
    m_matched=yet_not_matched;
}
</code></pre>
<p>?</p>
<p>3.1 Was bedeutet das ? Mir ist aufgefallen, dass er z.B. den letzten Eintrag doppelt liest. Das wollte ich auf später verschieben bzw. eigentlich wäre das ohnehin egal, da, falls eine Datenreihe schon ausgelesen wurde, dies ausdrücken soll (was ich halt eben mit enum versuche zu tun).<br />
3.2 Und was bedeutet das ? &quot;Noch&quot; im Sinne von einem weiteren Objekt, sprich Datenreihe aus der auszulesenden Datei ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512331</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 21:25:35 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 21:33:10 GMT]]></title><description><![CDATA[<p>Progressive schrieb:</p>
<blockquote>
<p>3.1 Was bedeutet das ?</p>
</blockquote>
<p>Das ist wohl einer der verwirrendsten Plenks, die ich je gesehen habe. Ich haben bestimmt 30 Sekunden versucht, ein ? in deinem Code zu finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512333</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 20 Oct 2016 21:33:10 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 21:43:47 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Progressive schrieb:</p>
<blockquote>
<p>3.1 Was bedeutet das ?</p>
</blockquote>
<p>Das ist wohl einer der verwirrendsten Plenks, die ich je gesehen habe. Ich haben bestimmt 30 Sekunden versucht, ein ? in deinem Code zu finden.</p>
</blockquote>
<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="😕"
    /> <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="😃"
    /><br />
Ich werde es mir für die Zukunft merken <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/2512335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512335</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 21:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 22:08:16 GMT]]></title><description><![CDATA[<p>Dein Compiler <em>will</em> das main <em>irgendwie</em> nicht?<br />
Dann nennst du die Funktion anders, führst das Programm aber aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512336</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 20 Oct 2016 22:08:16 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 22:15:37 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Dein Compiler <em>will</em> das main <em>irgendwie</em> nicht?<br />
Dann nennst du die Funktion anders, führst das Programm aber aus?</p>
</blockquote>
<p>//int main()</p>
<pre><code>root [0] .x Min.cpp
warning: cannot find function 'Min()'; falling back to .L
</code></pre>
<p>//int Min()</p>
<pre><code>root [0] .x Min.cpp

Open &quot;Test.txt&quot; as input
5 APDs read out
912009913 already matched ?   32735
912009897 already matched ?   32735
912009912 already matched ?   32735
912009895 already matched ?   32735
912009895 already matched ?   32735

(int) 0
</code></pre>
<p>PS: Die Datei heißt Min.cpp <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/2512337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512337</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 22:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 22:21:25 GMT]]></title><description><![CDATA[<p>Das sieht nach vielem aus, nur nicht nach einem C++ Compiler und einem übersetzten C++ Programm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512338</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 20 Oct 2016 22:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 22:28:41 GMT]]></title><description><![CDATA[<blockquote>
<p>ROOT ist in C++ implementiert(..). Seit Version 6 basiert ROOT auf dem C++ Interpreter Cling, der seinerseits auf dem C++-Compiler Clang und dem Compilerframework LLVM aufbaut. Programme, die das ROOT-Framework verwenden, können entweder nativ durch Einbindung der entsprechenden Bibliotheken und Header kompiliert, oder über den integrierten C++-Interpreter CINT ausgeführt werden.</p>
</blockquote>
<p><a href="https://de.wikipedia.org/wiki/ROOT" rel="nofollow">https://de.wikipedia.org/wiki/ROOT</a></p>
<p>In der makefile verwende ich g++ als Compiler. Ich weiß aktuell noch nicht, ob ich Root für das aktuelle Vorhaben brauche aber sehr wahrscheinlich wird es irgendwann notwendig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512339</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 22:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 22:50:19 GMT]]></title><description><![CDATA[<p>Ah, du nutzt root! Hätte ich mir bei Hamamatsu-Sensoren denken können, die hatten wir im hcal, als ich mich noch damit beschäftigt habe <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>
<p>In root musst du die Funktion natürlich irgendwie != main nennen, wenn du sie als Macro* mit .x ausführen willst oder mit .L laden willst. Bzw. du nennst die genauso wie deine Datei, wenn sie gleich ausgeführt werden soll, also Min.cpp.</p>
<p>Wenn du mit g++ compilierst, dann brauchst du ein main und dann ginge das so:</p>
<pre><code>g++ Min.cpp $(root-config --cflags --ldflags --libs) -o dein-programm
</code></pre>
<p>Es gibt auch irgendwo in ein FindROOT.cmake, damit man das nicht immer von Hand machen muss.</p>
<p>Ich hoffe für dich nur, dass du ein halbwegs aktuelles ROOT6 nutzt, da der C++-Interpreter von ROOT5 mistig ist (oft ist es auch mal sinnvoll mit</p>
<pre><code>.x Min.cpp+g
</code></pre>
<p>(beachte das +) den echten Compiler zu nehmen).</p>
<p>* Macro hier im Sinne von Programm, das direkt in ROOT ausgeführt wird, früher per CINT, jetzt ists Cling/LLVM. Das verwirrt C/C++-Entwickler immer, die bei Macro sofort an Präprozessor denken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512340</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Thu, 20 Oct 2016 22:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to Auf enum als Member zugreifen on Thu, 20 Oct 2016 23:28:19 GMT]]></title><description><![CDATA[<p>wob schrieb:</p>
<blockquote>
<p>Ah, du nutzt root! Hätte ich mir bei Hamamatsu-Sensoren denken können, die hatten wir im hcal, als ich mich noch damit beschäftigt habe <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>
</blockquote>
<p>Wird damit die Anrede &quot;Genosse&quot; zwingend ? <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="😃"
    /> Bin an einem hcal recht nah dran.</p>
<p>wob schrieb:</p>
<blockquote>
<p>In root musst du die Funktion natürlich irgendwie != main nennen, wenn du sie als Macro* mit .x ausführen willst oder mit .L laden willst. Bzw. du nennst die genauso wie deine Datei, wenn sie gleich ausgeführt werden soll, also Min.cpp.</p>
</blockquote>
<p>Durch Trial &amp; Error ist mir das schon aufgefallen, von daher aber gut zu wissen, dass das so sein muss.</p>
<p>wob schrieb:</p>
<blockquote>
<p>Wenn du mit g++ compilierst, dann brauchst du ein main und dann ginge das so:</p>
<pre><code>g++ Min.cpp $(root-config --cflags --ldflags --libs) -o dein-programm
</code></pre>
<p>Es gibt auch irgendwo in ein FindROOT.cmake, damit man das nicht immer von Hand machen muss.</p>
</blockquote>
<p>Mein Makefile sieht etwas anders aus aber letztlich dürfte das analog sein. Habe für root I$(ROOTINC)</p>
<p>wob schrieb:</p>
<blockquote>
<p>Ich hoffe für dich nur, dass du ein halbwegs aktuelles ROOT6 nutzt, da der C++-Interpreter von ROOT5 mistig ist (oft ist es auch mal sinnvoll mit</p>
<pre><code>.x Min.cpp+g
</code></pre>
<p>(beachte das +) den echten Compiler zu nehmen).</p>
</blockquote>
<p>Habe es letzten Monat endlich auf Version 6 gebracht, davor hatte ich V. 5, was tatsächlich eine Quälerei war.. auch jetzt könnte manches noch besser sein aber man merkt den Unterschied schon deutlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Danke für den Tipp!</p>
<p>wob schrieb:</p>
<blockquote>
<p>* Macro hier im Sinne von Programm, das direkt in ROOT ausgeführt wird, früher per CINT, jetzt ists Cling/LLVM. Das verwirrt C/C++-Entwickler immer, die bei Macro sofort an Präprozessor denken.</p>
</blockquote>
<p>Das erklärt jetzt wiederum auch eine Konversation kürzlich <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/2512342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512342</guid><dc:creator><![CDATA[Progressive]]></dc:creator><pubDate>Thu, 20 Oct 2016 23:28:19 GMT</pubDate></item></channel></rss>