<?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[remove_if: Alle Elemente löschen die != elem.GetSth() sind?]]></title><description><![CDATA[<p>Ich möchte mittels std::remove_if alle Elemente aus einem Container löschen die bei elem.GetMember() einen Wert != einen von mir bestimmten Wert liefern.</p>
<p>Klingt verdammt kompliziert, hier ein kleines Beispiel zur Verdeutlichung:</p>
<pre><code class="language-cpp">class Elem
{
    int member;

    public:
        int GetMember () { return member; }
};

...

std::vector&lt;Elem&gt; vec;

...

// Lösche alle Elemente aus vec die für GetMember() nicht x liefern
</code></pre>
<p>Da mein Operator != ist verwende ich std::not_equal_to als Prädikat. x als Parameter daran zu binden ist mittels bind2nd auch kein Problem, würde so aussehen:</p>
<pre><code class="language-cpp">std::bind2nd&lt;std::not_equal_to&lt;TRMode&gt;,int&gt;(std::not_equal_to&lt;TRMode&gt;(),x)
</code></pre>
<p>Doch da taucht ein Problem auf TRMode hat natürlich keinen op!= für int überladen. Wie kann ich nun not_equal_to sagen, dass es nicht elem != x sondern elem.GetMember() != x ausführen soll?</p>
<p>Den op!= zu überladen geht nicht, ich habe mehrere int-Member für die das alles auf dem selben Weg funktionieren muss.</p>
<p>Ich habe von std::mem_fun_ref gelesen, weiß jetzt aber nicht ob und wenn ja wie ich das hier anwenden kann. Ich hoffe mir kann jemand helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>BTW: Eigene Prädikate zu schreiben ist zwar eine sehr einfache Idee aber ich will jetzt eigentlich nicht für 10 verschiedene Member Prädikate schreiben...</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/118524/remove_if-alle-elemente-löschen-die-elem-getsth-sind</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 12:20:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118524.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 21 Aug 2005 15:26:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 15:26:34 GMT]]></title><description><![CDATA[<p>Ich möchte mittels std::remove_if alle Elemente aus einem Container löschen die bei elem.GetMember() einen Wert != einen von mir bestimmten Wert liefern.</p>
<p>Klingt verdammt kompliziert, hier ein kleines Beispiel zur Verdeutlichung:</p>
<pre><code class="language-cpp">class Elem
{
    int member;

    public:
        int GetMember () { return member; }
};

...

std::vector&lt;Elem&gt; vec;

...

// Lösche alle Elemente aus vec die für GetMember() nicht x liefern
</code></pre>
<p>Da mein Operator != ist verwende ich std::not_equal_to als Prädikat. x als Parameter daran zu binden ist mittels bind2nd auch kein Problem, würde so aussehen:</p>
<pre><code class="language-cpp">std::bind2nd&lt;std::not_equal_to&lt;TRMode&gt;,int&gt;(std::not_equal_to&lt;TRMode&gt;(),x)
</code></pre>
<p>Doch da taucht ein Problem auf TRMode hat natürlich keinen op!= für int überladen. Wie kann ich nun not_equal_to sagen, dass es nicht elem != x sondern elem.GetMember() != x ausführen soll?</p>
<p>Den op!= zu überladen geht nicht, ich habe mehrere int-Member für die das alles auf dem selben Weg funktionieren muss.</p>
<p>Ich habe von std::mem_fun_ref gelesen, weiß jetzt aber nicht ob und wenn ja wie ich das hier anwenden kann. Ich hoffe mir kann jemand helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>BTW: Eigene Prädikate zu schreiben ist zwar eine sehr einfache Idee aber ich will jetzt eigentlich nicht für 10 verschiedene Member Prädikate schreiben...</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855473</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 15:26:34 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 15:33:41 GMT]]></title><description><![CDATA[<p>Die Template-Angaben bei bind2nd sind wohl fürn Hugo...</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855476</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 15:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 17:19:34 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Ich möchte mittels std::remove_if alle Elemente aus einem Container löschen die bei elem.GetMember() einen Wert != einen von mir bestimmten Wert liefern.</p>
<p>...<br />
Ich habe von std::mem_fun_ref gelesen, weiß jetzt aber nicht ob und wenn ja wie ich das hier anwenden kann. Ich hoffe mir kann jemand helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Hallo SideWinder,<br />
mit Standard-Mitteln allein wirst Du das nicht schaffen. Mit boost ist es relativ einfach:</p>
<pre><code class="language-cpp">vector&lt; Elem &gt;::iterator i = std::remove_if( vec.begin(), vec.end(), 
        boost::bind( &amp;Elem::GetMember, _1 ) != bestimmterWert  ); // ab boost V1.33
</code></pre>
<p>SideWinder schrieb:</p>
<blockquote>
<p>BTW: Eigene Prädikate zu schreiben ist zwar eine sehr einfache Idee aber ich will jetzt eigentlich nicht für 10 verschiedene Member Prädikate schreiben...</p>
</blockquote>
<p>Falls Du Dir boost nicht antun möchtest (es sei aber wärmstens empfohlen) kannst Du Dir genau ein Prädikat schreiben, welches die aktuell gewünschte Member-Funktion als Parameter hält.</p>
<pre><code class="language-cpp">template&lt; typename T &gt; // T ist der Type des jeweiligen ReturnWerts, bzw. von 'bestimmterWert'
struct NotEqualMem
{
    typedef T (Elem::*memFun_type)() const; // Get-Methoden sollten const sein
    NotEqualMem( memFun_type mf, const T&amp; x )
        : m_mf( mf )
        , m_x( x )
    {}

    bool operator()( const Elem&amp; e ) const
    {
        return (e.*m_mf)() != m_x;
    }

private:
    memFun_type m_mf;
    T m_x;
};

// Aufruf geht dann so
    vector&lt; Elem &gt;::iterator i = std::remove_if( vec.begin(), vec.end(), 
        NotEqualMem&lt; int &gt;( &amp;Elem::GetMember, bestimmterWert )  );
</code></pre>
<p>Bedenke bitte, dass der Algorithmus keine Elemente aus dem Container std::vector&lt; Elem &gt; löscht - bzw. löschen kann. Er schiebt die zu löschenden Elemente nach hinten und liefert Dir einen Iterator ab dem ersten zu löschenden Element zurück. Also zum Entfernen fehlt dann noch:</p>
<pre><code class="language-cpp">vec.erase( i, vec.end() );
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855525</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 21 Aug 2005 17:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 17:54:02 GMT]]></title><description><![CDATA[<blockquote>
<p>mit Standard-Mitteln allein wirst Du das nicht schaffen</p>
</blockquote>
<p>Ich habs befürchtet <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>
<blockquote>
<p>Mit boost ist es relativ einfach</p>
</blockquote>
<p>Merk ich mir für zu Hause, hilft mir jetzt leider aber auch nichts <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>
<blockquote>
<p>kannst Du Dir genau ein Prädikat schreiben, welches die aktuell gewünschte Member-Funktion als Parameter hält.</p>
</blockquote>
<p>Das werd ich dann wohl nehmen, danke, hätt ich wohl nie daran gedacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>BTW: Sehr ausführliche und aufschlussreiche Antwort <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="👍"
    /></p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855542</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 17:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 18:57:47 GMT]]></title><description><![CDATA[<p>Funktioniert leider noch nicht ganz - kann mir aber nicht erklären warum. Hier mein Code (Nicht über die Konstanten und komische Typen wundern, das läuft hier so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> (Trotzdem verständlich denke ich)):</p>
<pre><code class="language-cpp">// Pred:
template &lt;class T&gt;
struct not_equal_to_member
{
	// Typen
	typedef T (TRMode::*MethodPointer) () const;

	// Aufzurufende Vergleichsmethode
	PRIVATE MethodPointer mMethod;
	// Vergleichswert
	PRIVATE T mValue;

	// Konstruktoren
	PUBLIC not_equal_to_member (MethodPointer method, T value)
		:
	mMethod(method),
	mValue(value)
	{
	}

	// Operatoren
	PUBLIC bool operator() (T elem) const
	{
		return mValue != (elem.*mMethod)();
	}
};

// Aufruf (TRModeList : public std::list)
// viel switch jeweils mit anderer methode
eraseFrom = std::remove_if(begin(),end(),not_equal_to_member&lt;int32&gt;(&amp;TRMode::GetHeight,value));

erase(eraseFrom,end());
</code></pre>
<p>Zuerst hab ich geglaubt, die Methoden dürfen ganz einfach nicht inline sein, aber das scheint auch nicht der Fall zu sein. Der MSVC liefert mir folgenden Compiler-Fehler für jeden Aufruf von remove_if:</p>
<pre><code>'not_equal_to_member&lt;TEXT&gt;::__ctor': Durch keine der 2 Überladungen kann Parameter 1 vom Typ 'int32 (__thiscall TRMode::* )(void) const' konvertiert werden
        with
        [
            TEXT=int32
        ]
        and
        [
            TEXT=int32
        ]

kann 'not_equal_to_member&lt;TEXT&gt;::not_equal_to_member(not_equal_to_member&lt;TEXT&gt;::MethodPointer (__cdecl *),TEXT)' sein
        with
        [
            TEXT=int32
        ]
        bei Anpassung der Argumentliste '(int32 (__thiscall TRMode::* )(void) const, int32)'
</code></pre>
<p>Was mach ich falsch?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855605</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 18:57:47 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:29:12 GMT]]></title><description><![CDATA[<p>Poste doch bitte noch die Definition von TRMode</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855628</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:29:12 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:34:14 GMT]]></title><description><![CDATA[<p>Hier:</p>
<pre><code class="language-cpp">class TRMode
{
	PUBLIC_FOR_ENUMERATOR; // nicht mehr als ne friend-dekl, der darf TRMode als einziges erstellen

	PRIVATE int32 mHeight;
      PRIVATE int32 mWidth; // und noch viel mehr nach dem muster, aber für die hier funktionierts schon nicht.

	// Konstruktoren
	INTERN TRMode () {}; // INTERN = private:

	// Methoden - Getter
      PUBLIC INLINE int32 GetHeight () const { return mHeight; }
      PUBLIC INLINE int32 GetWidth () const { return mWidth; } // dito, noch ein paar nach dem muster
};
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855631</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:34:14 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:36:25 GMT]]></title><description><![CDATA[<p>Weils mir gerade auffällt: Kann das irgendwie mit den Aufrufkonventionen zusammenhängen? Einmal schreibt er was von __thiscall und einaml von __cdecl, vielleicht hauts deswegen nicht hin mit einem ordentlichen Pointer auf eine Methode?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855632</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:36:25 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:38:13 GMT]]></title><description><![CDATA[<p>Der Fehler ist der operator() (T elem)<br />
T wird durch int ersetzt, Du willst aber TRMode haben.</p>
<p>Mach doch:</p>
<pre><code class="language-cpp">template &lt;class T, class X&gt;
struct not_equal_to_member
{
    // Typen
    typedef T (X::*MethodPointer) () const;

    // Aufzurufende Vergleichsmethode
    private:
      MethodPointer mMethod;
    // Vergleichswert
       T mValue;

    // Konstruktoren
    public:
    not_equal_to_member (MethodPointer method, T value)
        :
    mMethod(method),
    mValue(value)
    {
    }

    // Operatoren
    bool operator() (X elem) const  // hier darf nicht T stehen
    {
        return mValue != (elem.*mMethod)();
    }
};
</code></pre>
<p>Damit kannst Du das Prädikat dann auch für andere Typen als TRMode einsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855633</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:38:13 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:46:45 GMT]]></title><description><![CDATA[<p>Hast recht, wäre aber offenbar nur ein Folgefehler gewesen. Er meckert ja beim Konstrukturaufruf und der hat mit dem op() noch nichts zu tun. Es funktioniert trotz der Richtigstellung immer noch nicht <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>
<p>/Edit: Hab hier mal einstweilen Boost installiert, mit Boost ists kein Problem. Bloß verstehe ich die Implementierung von denen nicht und direkt einsetzen kann ichs auhc nicht.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855637</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:47:36 GMT]]></title><description><![CDATA[<p>Folgender kleiner Test compiliert hier und liefert ein korrektes Ergebnis:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

class Elem
{
    int member;

    public:
        Elem( int y) : member( y) {};
        int GetMember () const { return member; }
};

template &lt;class T, class X&gt;
struct not_equal_to_member
{
    // Typen
    typedef T (X::*MethodPointer) () const;

    // Aufzurufende Vergleichsmethode
    private:
      MethodPointer mMethod;
    // Vergleichswert
       T mValue;

    // Konstruktoren
    public:
    not_equal_to_member (MethodPointer method, T value)
        :
    mMethod(method),
    mValue(value)
    {
    }

    // Operatoren
    bool operator() (X elem) const
    {
        return mValue != (elem.*mMethod)();
    }
};

int main()
{
   vector&lt;Elem&gt; x;
   x.push_back( Elem( 1));
   x.push_back( Elem( 0));
   x.push_back( Elem( 2));
   x.push_back( Elem( 0));
   x.push_back( Elem( 3));
   for( int i = 0; i &lt; 10; ++i) { x.push_back( Elem( i)); }

   int value = 0;

   vector&lt;Elem&gt;::iterator eraseFrom = 
     std::remove_if(x.begin(),x.end(),
                    not_equal_to_member&lt;int, Elem&gt;(&amp;Elem::GetMember,value));

   x.erase(eraseFrom,x.end());

   for( vector&lt;Elem&gt;::const_iterator it = x.begin(); it != x.end(); ++it) {
   	cout &lt;&lt; it-&gt;GetMember() &lt;&lt; &quot; &quot;;
   }
   cout &lt;&lt; endl;
}
</code></pre>
<p>Compiler ist irgendeine neuere GCC Version für Windows.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855638</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:47:36 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Sun, 21 Aug 2005 19:52:43 GMT]]></title><description><![CDATA[<p>Nachtrag: Mit MSVC 7.1 geht's auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855642</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sun, 21 Aug 2005 19:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Mon, 22 Aug 2005 02:15:45 GMT]]></title><description><![CDATA[<p>VERDAMMT VERDAMMT VERDAMMT VERDAMMT VERDAMMT VERDAMMT ICH SCHIESS SIE ALLE AB <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Weil den Kerlen das TEXT()-Macro für hardcoded Unicode-Externalisierungen zu lang war haben die:</p>
<pre><code class="language-cpp">#define T TEXT
</code></pre>
<p>eingeführt. Ich mein wie kann man den Standard-Template-Parametr fast aller Template-Klassen im Umlauf nur umdefinieren? Ich sitz verdammte 11 Stunden vor dem PC und jetzt erst wundert mich in der Template-Fehlermeldung dieses TEXT als Paramter, das wird doch sonst nie gemacht. Und dann bimmelts, ich will heulen <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>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855767</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 22 Aug 2005 02:15:45 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Mon, 22 Aug 2005 07:28:44 GMT]]></title><description><![CDATA[<p>hey sidewinder warum wird denn in deiner firma makros für public und private benutzt? oder steckt da mehr hinter als</p>
<p>#define PRIVATE private<br />
#define PUBLIC public</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/855823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855823</guid><dc:creator><![CDATA[hi]]></dc:creator><pubDate>Mon, 22 Aug 2005 07:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Mon, 22 Aug 2005 11:46:07 GMT]]></title><description><![CDATA[<p>Keine Ahnung, sowas kann ich in meiner Stellung nicht hinterfragen. In 3 Wochen heißts für mich wieder ab in die Schule und die bekommen die Sourcen soweit ich gekommen bin.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/856036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856036</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 22 Aug 2005 11:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Mon, 22 Aug 2005 11:59:08 GMT]]></title><description><![CDATA[<p>lol man muss doch immer genau wissen was man tut und warum man etwas tut. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/856059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856059</guid><dc:creator><![CDATA[hi]]></dc:creator><pubDate>Mon, 22 Aug 2005 11:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Mon, 22 Aug 2005 15:40:37 GMT]]></title><description><![CDATA[<p>vielleicht alte java-hasen die mit C-makros C++ spielen wollen *hüstel*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/856288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856288</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 22 Aug 2005 15:40:37 GMT</pubDate></item><item><title><![CDATA[Reply to remove_if: Alle Elemente löschen die != elem.GetSth() sind? on Mon, 22 Aug 2005 16:02:08 GMT]]></title><description><![CDATA[<p>Ist doch super praktisch wenn sich die keywords mal im Namen ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/856304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856304</guid><dc:creator><![CDATA[:o]]></dc:creator><pubDate>Mon, 22 Aug 2005 16:02:08 GMT</pubDate></item></channel></rss>