FAQ: ListBox: Horizontale Scrollbar: max()



  • Hallo
    Ich wollte aus der FAQ das Beispiel zur Erschaffung einer horizontalen Scrollbar in einer ListBox anwenden, komme aber nicht weiter, weil er die Funktion "max" nicht finden kann. Klar, es fehlt die entprechende Header.
    Laut Borland Help ist es die Header stdlib.h, die die Funktion beinhaltet.
    Aber auch wenn ich diese hinzugefügt habe besteht das Problem weiter.
    Zu welcher Header gehört max denn jetzt?
    Wäre nicht schlecht das in der FAQ upzufaten!



  • Keine Ahnung, wie du auf stdlib.h kommst, meine (BCB6-)Hilfe sagt eindeutig <algorithm>.
    Allerdings war die STL-Implementierung im BCB5 (aus dessen Zeit das FAQ-Beispiel stammt) wohl nicht so konsequent, dort wurde offensichtlich automatisch das max aus der stdlib.h benutzt, die über die vcl.h eingebunden war.

    Davon abgesehen wirst du einen simplen "Grösser als"-Vergleich zur Not aber wohl noch selbst hinbekommen!? Daran soll doch die Umsetzung des Beispiels nicht scheitern, oder?



  • Naja, ich würde nur eben gerne max einsetzen, und selbst bei dem Include von algorithm existiert die funktion für den Compiler nicht.

    Naja, aber mit ein bisschen if lässt sich das ja umgehen.



  • PCMan schrieb:

    selbst bei dem Include von algorithm existiert die funktion für den Compiler nicht.

    Für einen (zweiten) Blick in die Hilfe hat's wieder nicht gereicht? 😉

    #include <algorithm>
    
    std::max(a, b);
    
    // oder
    
    #include <algorithm>
    using namespace std;
    
    max(a, b);
    

    Und falls du mit der eigenen Implementierung doch Probleme haben solltest, hier mal das entsprechende Makro aus der windef.h:

    #define max(a,b)  (((a) > (b)) ? (a) : (b))
    

    Wow, welch unglaublich komplizierter Algorithmus . 🙂


Anmelden zum Antworten