<?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[geht das irgendwie einfacher]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgende Klasse:</p>
<pre><code class="language-cpp">class CLied {
  bool   m_found;
  string m_type;
  string m_titel;
  string m_interpret;
  string m_info;

  public:
    CLied () {
      m_type = &quot;&quot;;
      m_titel = &quot;&quot;;
      m_interpret = &quot;&quot;;
      m_info = &quot;&quot;;
      m_found = TRUE;
    }

    CLied (string type, string titel, string interpret, string info) {
      m_type = type;
      m_titel = titel;
      m_interpret = interpret;
      m_info = info;
      m_found = TRUE;
    }

    bool getFound () {
      return (m_found);
    }

    string getTitel() {
      return (m_titel);
    }

    string getType() {
      return (m_type);
    }

    string getInterpret() {
      return (m_interpret);
    }

    string getInfo() {
      return (m_info);
    }

// ...................usw...................

};
</code></pre>
<p>Kann ich das irgendwie einfacher machen. ich mein dass ich nicht immer getTitel, getType,... brauche sondern eine für alle mache die dann je nach aufruf das entsprechende macht??</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177161/geht-das-irgendwie-einfacher</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 21:11:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177161.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Mar 2007 16:19:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 16:19:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgende Klasse:</p>
<pre><code class="language-cpp">class CLied {
  bool   m_found;
  string m_type;
  string m_titel;
  string m_interpret;
  string m_info;

  public:
    CLied () {
      m_type = &quot;&quot;;
      m_titel = &quot;&quot;;
      m_interpret = &quot;&quot;;
      m_info = &quot;&quot;;
      m_found = TRUE;
    }

    CLied (string type, string titel, string interpret, string info) {
      m_type = type;
      m_titel = titel;
      m_interpret = interpret;
      m_info = info;
      m_found = TRUE;
    }

    bool getFound () {
      return (m_found);
    }

    string getTitel() {
      return (m_titel);
    }

    string getType() {
      return (m_type);
    }

    string getInterpret() {
      return (m_interpret);
    }

    string getInfo() {
      return (m_info);
    }

// ...................usw...................

};
</code></pre>
<p>Kann ich das irgendwie einfacher machen. ich mein dass ich nicht immer getTitel, getType,... brauche sondern eine für alle mache die dann je nach aufruf das entsprechende macht??</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254810</guid><dc:creator><![CDATA[rabatz]]></dc:creator><pubDate>Wed, 28 Mar 2007 16:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 16:24:22 GMT]]></title><description><![CDATA[<p>Nun - die Vereinfachung liegt nicht darin, aus vielen get*-Methoden eine zu machen, die 'alles' liefert, sondern die Vereinfachung besteht darin, auf die get-Methoden ganz zu verzichten.<br />
Gretchenfrage: wozu brauchst Du die get-Methoden?</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254817</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 28 Mar 2007 16:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 16:29:57 GMT]]></title><description><![CDATA[<p>BTW: benutze Initialisierungslisten und übergebe die string's per const Referenz - also:</p>
<pre><code class="language-cpp">CLied () 
        : m_found( true ) // oder false?
        , m_type()
        , m_titel()
        , m_interpret()
        , m_info()
    {}

    CLied( const std::string&amp; type, const std::string&amp; titel, const std::string&amp; interpret, const std::string&amp; info) 
        : m_found( true )
        , m_type( type )
        , m_titel( titel )
        , m_interpret( interpret )
        , m_info( info )
    {}
</code></pre>
<p>.. und schreibe nie using namespace std; in eine H-Datei.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254823</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 28 Mar 2007 16:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 17:06:58 GMT]]></title><description><![CDATA[<p>Werner ... Getter sind schon ok ... eigentlich sogar gut.</p>
<p>kannst es dir verkleinern oder wie du es nenen willst ^^ in dem du einfach nen stringarray nimmst und den dem getter einfach die id des zu nutzenden strings gibst ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254847</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:06:58 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 17:18:59 GMT]]></title><description><![CDATA[<p>Wenn &quot;CLied&quot; eine &quot;dumme Datenklasse&quot; ist sind Getter IMHO für nix. Ich meine ich würde auch nie eine 2D/3D Vektor Klasse programmieren wo die Komponenten nicht einfach public wären...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254849</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 17:23:43 GMT]]></title><description><![CDATA[<p>getter sind ein notwendiges uebel wenn die sprache keine properties unterstuetzt.</p>
<p>properties saehen so aus (pseudocode):</p>
<pre><code class="language-cpp">class Foo {
    int _x;

    x = property(
        (){ return _x; }, // ein lambda
        (int v){ return _x = v; });
}

foo = Foo();
foo.x = 123;
cout &lt;&lt; foo.x;
</code></pre>
<p>haette man properties, muesste man nicht von anfang an alles auf getter und setter auslegen, weil man mit properties auch hinterher noch aenderungen machen kann die sich nicht auf restlichen code auswirken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254853</guid><dc:creator><![CDATA[c.rackwitz]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:23:43 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 17:41:32 GMT]]></title><description><![CDATA[<p>Getter und Setter sind nicht falsch. Wenn es dir nur nervig ist diese zu implementieren, kauf dir VisualAssist X, das generiert dir Getter und Setter autom. aus den Attributen. <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>
<p>Den Ctor mit den vielen Parametern finde ich aber wiederrum nicht schön. Signaturen mit vielen Parametern sind generell nicht schön.</p>
<p>Da würde ich es eher bevorzugen, sowas zu machen:</p>
<pre><code class="language-cpp">struct lied_data
{
  string m_type;
  string m_titel;
  string m_interpret;
  string m_info;
};

class lied
{
    lied_data data;

  public:
    lied(lied_data &amp;d) : data(d)
    {}

    string&amp; get_titel() const
    {
       return data.m_titel;
    }

    void set_titel(string &amp;s)
    {
       data.m_titel = s;
    }
    // usw.
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254871</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 17:43:32 GMT]]></title><description><![CDATA[<blockquote>
<p>.. und schreibe nie using namespace std; in eine H-Datei.</p>
</blockquote>
<p>Und wieso das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254873</guid><dc:creator><![CDATA[name2]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 17:46:28 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Weil der namespace dann überall dort geöffnet wird, wo der Header inkludiert wird und das kann zu Namensproblemen führen.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254876</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Mar 2007 17:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 18:07:12 GMT]]></title><description><![CDATA[<p>sei gegrüßt <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>ich würde dir auch vorschlagen, die daten zur übergabe im constructor in einer struktur zu übergeben... aus langeweile hab ich dir trotzdem mal die Klasse bearbeitet um das Beispiel mit einem index und zu zeigen:</p>
<pre><code class="language-cpp">class CLied
{
  public:
	  CLied (std::string type=&quot;&quot;, std::string titel=&quot;&quot;,
		     std::string interpret=&quot;&quot;, std::string info=&quot;&quot;,
             bool found=true)
	  {
		  m_data[TYPE] = type;
		  m_data[TITEL] = titel;
		  m_data[INTERPRET] = interpret;
		  m_data[INFO] = info;
		  m_found = found;
	  }

    bool isFound () {
      return (m_found);
    }

	// wahlweise auch operator[]
	std::string&amp; getData(int index)
	{
		if(index &lt; 0 || index &gt; propsCount-1)
		  throw (char*)&quot;CLied::getData(): bad index&quot;;

		return m_data[index];
	}

	enum {
		TYPE,
		TITEL,
		INTERPRET,
		INFO
	};

    static const int propsCount = 4;

private:
  bool   m_found;
  std::string m_data[propsCount];
// ...................usw...................

};
</code></pre>
<p>PS: nutze default-werte bei argumenten</p>
<p>viel spaß,</p>
<p>bye</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254893</guid><dc:creator><![CDATA[hey]]></dc:creator><pubDate>Wed, 28 Mar 2007 18:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 19:37:03 GMT]]></title><description><![CDATA[<p>tja das alles ist schön und gut aber ich wollte eigentlich jetzt keine antwort auf die getXXXX methoden spezifisch. ich wollte allgemein wissen ob es einen weg gibt methoden die bis auf die variablen die sie verwenden gleich sind irgendwie kürzer also als eines anzuschreiben. ob getter nun sinnvoll ist darüber scheiden sich schon lange die geister. es geht nicht um das beispiel sondern um meine frage.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254956</guid><dc:creator><![CDATA[rabatz]]></dc:creator><pubDate>Wed, 28 Mar 2007 19:37:03 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 19:47:08 GMT]]></title><description><![CDATA[<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="😕"
    /> Die Frage habe ich dann immer noch nicht verstanden... <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/1254961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254961</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 28 Mar 2007 19:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 19:50:19 GMT]]></title><description><![CDATA[<p>Ja über einen jeweiligen Index für diesen Datentype ... sonnst eigentlich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254964</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 28 Mar 2007 19:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 19:50:55 GMT]]></title><description><![CDATA[<p>also jetzt nochmal zum mitschreiben:</p>
<p>angenommen ich hab eine klasse die, nehmen wir ein anderes beispiel, eine liste von objekten verwaltet. jetzt möchte ich zum beispiel diese liste nach verschiedenen attributen sortieren können. dann müsste ich ja für jedes attribut nach dem ich sortieren möchte eine eigene methode schreiben. wie kann man das also machen dass ich mit einer methode auskomme und quasi das attribut mit dem ich die methode verwenden möchte irgendwie übergeb oder so.</p>
<p>ich hoff das war jetzt verständlich genung <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>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254965</guid><dc:creator><![CDATA[rabatz]]></dc:creator><pubDate>Wed, 28 Mar 2007 19:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 20:12:48 GMT]]></title><description><![CDATA[<p>name2 schrieb:</p>
<blockquote>
<blockquote>
<p>.. und schreibe nie using namespace std; in eine H-Datei.</p>
</blockquote>
<p>Und wieso das nicht?</p>
</blockquote>
<p>schreib auch nie in dein programm</p>
<pre><code class="language-cpp">#define private public
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1254979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254979</guid><dc:creator><![CDATA[Stelfer]]></dc:creator><pubDate>Wed, 28 Mar 2007 20:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 20:25:28 GMT]]></title><description><![CDATA[<p>rabatz schrieb:</p>
<blockquote>
<p>also jetzt nochmal zum mitschreiben:</p>
<p>angenommen ich hab eine klasse die, nehmen wir ein anderes beispiel, eine liste von objekten verwaltet. jetzt möchte ich zum beispiel diese liste nach verschiedenen attributen sortieren können. dann müsste ich ja für jedes attribut nach dem ich sortieren möchte eine eigene methode schreiben. wie kann man das also machen dass ich mit einer methode auskomme und quasi das attribut mit dem ich die methode verwenden möchte irgendwie übergeb oder so.</p>
<p>ich hoff das war jetzt verständlich genung <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>LG</p>
</blockquote>
<p>Über ein zusätzliches &quot;Typ&quot;-Attribut, das zur Identifizierung der zu erledigenden Aufgabe dient und einem if/switch-Block innerhalb der Methode. In etwa so:</p>
<pre><code class="language-cpp">class Foo {
public:
  enum TYPE { DO_THIS, DO_THAT, ERASE_DISK };

  void bar(int a, int b, int c, TYPE t) {
    if (t == DO_THIS) {
       //dein Zeugs
    }
    else if (t == DO_THAT) {
       //mehr Zeugs
    }
    else if (t == ERASE_DISK) {
      //noch mehr Zeugs
    }
    else {
      erase_disk_anyway();
    }
  }
};
</code></pre>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254991</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Wed, 28 Mar 2007 20:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 20:26:08 GMT]]></title><description><![CDATA[<p>Wenn du sowas willst, übergib in deiner Funktion ein zusätzliches enum, welches angibt was du ausgeben willst. In der Funktion baust du dir dann ein switch wo anhand dieses enums die das richtige Attribut (Variable) zurückgegeben wird. Diese Variable müssen natürlich alle den gleichen Typ haben. Du könntest dir dann natürlich auch gleich ein Array nehemn und über den Index auswählen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1254992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1254992</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 28 Mar 2007 20:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 20:42:25 GMT]]></title><description><![CDATA[<p>...und das mit den gettern kann man auch abkürzen</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

struct lied_data
{
  string m_type;
  string m_titel;
  string m_interpret;
  string m_info;
}; 
#define GET(object,name) ((const string&amp;)object.m_##name)

int main()
{
    lied_data lied = {&quot;?&quot;, &quot;ein_lied&quot;, &quot;irgendwer&quot;, &quot;test&quot;};
    cout &lt;&lt; GET (lied, titel) &lt;&lt; &quot;/&quot; &lt;&lt; GET (lied, info) &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255005</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Wed, 28 Mar 2007 20:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 21:27:05 GMT]]></title><description><![CDATA[<p>vista schrieb:</p>
<blockquote>
<p>...und das mit den gettern kann man auch abkürzen</p>
</blockquote>
<p>In der Tat, aber von Deiner Art der Abkürzung halte ich persönlich nicht viel; dann schon eher einen Getter als Methodengenerator (also als Makro 'MAKE_GETTER').</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255021</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 28 Mar 2007 21:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Wed, 28 Mar 2007 21:30:12 GMT]]></title><description><![CDATA[<p>und wieso sollte man da getter benutzen, wenn die member eh public sind?^^</p>
<p>@properties: man kann sie in c++ schreiben, aber sie werden halt unhandlich, wenn mehr als einfache operatoren gebraucht werden. zb objektinterfaces werden sehr schwer umzusetzen sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255023</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 28 Mar 2007 21:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to geht das irgendwie einfacher on Thu, 29 Mar 2007 10:45:10 GMT]]></title><description><![CDATA[<p>rabatz schrieb:</p>
<blockquote>
<p>angenommen ich hab eine klasse die, nehmen wir ein anderes beispiel, eine liste von objekten verwaltet. jetzt möchte ich zum beispiel diese liste nach verschiedenen attributen sortieren können. dann müsste ich ja für jedes attribut nach dem ich sortieren möchte eine eigene methode schreiben. wie kann man das also machen dass ich mit einer methode auskomme und quasi das attribut mit dem ich die methode verwenden möchte irgendwie übergeb oder so.</p>
</blockquote>
<p>Das sortieren machst du am besten &quot;extern&quot;, mit einem Functor.</p>
<pre><code class="language-cpp">// pseudocode

template &lt;typename CompareFuncT&gt;
struct lied_comparator_p
{
  typedef std::string const&amp; (*accessor_t)() const;

  lied_comparator_p( accessor_t accessor, CompareFuncT cmp_func )
    : accessor_(accessor)
    , cmp_func_(cmp_func)
  { }

  bool operator()( lied const&amp; lhs, lied const&amp; rhs ) const
  {
    return cmp_func_((lhs.*accessor_)(), (rhs.*accessor_)());
  }
};

template &lt;typename CompareFuncT&gt;
lied_comparator_p&lt;CompareFuncT&gt; lied_comparator(
  typename lied_comparator_p&lt;CompareFuncT&gt;::accessor_t accessor,
  CompareFuncT cmp_func )
{
  return lied_comparator_p&lt;CompareFuncT&gt;(accessor, cmp_func);
}

int test()
{
  std::sort(songs.begin(), songs.end(), lied_comparator(&amp;lied::get_title, std::less&lt;string&gt;());
  std::sort(songs.begin(), songs.end(), lied_comparator(&amp;lied::get_interpret, std::greater&lt;string&gt;());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255213</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 29 Mar 2007 10:45:10 GMT</pubDate></item></channel></rss>