Beiträge von The User

    1. Wenn schon, dann mit i->first.c_str().
    2. Was soll denn das mit dem sprintf? Benutz doch einfach nen richtigen string, einen string-stream oder direkt cout oder cerr.
    3. Probier mal gcc/MinGW mit -Wall, der wird dir direkt zwei dicke Warnungen anzeigen, wenn du einen falschen Typ (sogar ein C++-Objekt mit Kopierkonstruktor!) an eine Ellipsenfunktion wie sprintf übergibst.

    Xaver Rainer Raimund Detlef Felix Xerxes Stefan Nick Karsten Nicklas Samuel Lukas Sebastian Nigel Lars Simon Nils Silas Sven Nicola Arthur Rudolf Fred Daniel Levke Eduard David Darius Simeon Nicolas Samiel Ludwig Günther Raphael Louis Sam Manuel Lasse Elvis Sascha Amanda Andreas Sandro Oliver Rainer Rico Otto Orhan Natalie Emil Lara Anna Adrian Nancy Yvonne Emilia Albert Tina Anja Antonia Alex Xenia Anke Eduard Dana Amelie Estelle Esther Rachel Lisa Anita Andrea Alexandra Anika Annabelle Elisabeth Hennriette Eberhard Donatello Oskar Rüdiger Reinhold Dieter Rashid Dietrich Heinrich Harald Dennis Selina Anton Norbert Theodor Ralf Florian Nasam Maren Newton Nepumuk Kay Yousuff Frank Kasimir Rolf Fahrid Dirk Kirk Konstantin Nikolaus Sandro Othilf Fridolin Napoleon Nelson Nina Angelika Angelina Anatol Liselotte Elvira Antonette Ephraim Miriam Maria Ashley Yolanda Annegret Tatjana Alicia Alexia Alexandria Achmed Denny Yrena Aurelia Anne Agathe Eric Carlo Oswald Dagobert Tatana Aisha Alejandra Anneliese Eva Astrid Dietrich Hamal Larissa Andre Emil Lenny Yavannah Helga Augustine Elias Samuel Lorenzo Olivier Richard Desmond Dagmar Ronaldo Ottokar Rambo Orlando Orome Edem Michelle Etienne Emilia Agathe Emre Ernie Elton Nicole Eremias Sahit Torsten Nazan Nathan Nasil Laurenz Zofie Elena Angelique Enrico Ottilie Ellen Nora Aurelie Elijah Hans Selma Adrina Adrien Natalia Auguste Estellle Elisabeth Hedwig Günther Rashida Axel Leo Olivia Asterix Xavier Reginald Donald Dante Emilia Atemis Sandra Asley Yris Samson Nina-Aren Nasha Adona Aaron Nelly Yazzy Yvette Elnora Andreas Selena Anneliese Emanuelle Elisabeth Helena Adelheid Daria Agatha Anatol Lambert Tamara Antonella Arminata Annie Emma Antonette Edgar Rudolph Hermann Nima ... Marx

    Wie wärs mit der Regel, keine Namen mehr, die mit "n" enden? Oder versteht sich das von selbst? :D

    Ihr werdet doch auch zustimmen, dass das kein Witz ist, über den man einfach mal schmunzelt oder lacht, sondern dass er eine gewisse Intention hat. Warum sollte man über dies nicht diskutieren?
    Das mit dem Urheberrecht ist einfach nur lächerlich, was solls...

    MrMurphy
    Dieser Liste ist kein Urheber mehr zuzuschreiben (wie bei einer Redensart oder einem Witz), Bandit hat das vermutlich noch etwas umstrukturiert und verändert, also lassen wir es einfach so stehen, es ist nicht wirklich von Bandit, aber auch nicht von jemand anderem.

    @Caro
    Man kann mit Hygiene übertreiben, wenn man nie aus einer Flasche trinkt, nichts anfasst etc. und man kann auf Cadmium verzichten oder Geländer einbauen. Das sind zwei paar Schuhe. Und ersteres geschieht auch in sehr vielen Familien nicht.
    Man kann ein Handy haben, oder es auch mal zu Hause lassen, meistens ist ein Handy aber doch recht praktisch, eigentlich doch total in Ordnung, wenn man die Möglichkeit hat.

    Also ich bin deutlich nach 1978 geboren, dennoch meine Meinung:
    -Bei den meisten Punkten im ersten Teil handelt es sich entweder um technologischen Fortschritt (da zähle ich jetzt mal Möglichkeiten von Essen Kaufen oder Bahn Fahren etc. hinzu), gegen den ich absolut nichts auszusetzen habe, oder die Errungenschaften linker, liberaler Erziehungsideale. Diese Aussagen à la "Das hat uns nicht geschadet" finde ich einfach nur dämlich, darüber ist man nun mal mittlerweile hinweg.
    -Ein paar Punkte nehme ich einfach nur zur Kenntnis (ihr kanntet Terroristen-Fahndungsbiler, na und?), ein paar sind nicht dermaßen krasse Unterschiede (ich trage auch viele Sachen von meinen Cousins), einige Behauptungen halte ich für unwahr (als ob wir heute nicht ordentlich essen würden oder auf Schulhöfen überall Spritzen rumliegen würden) und bei einigen stimme ich dir zu, dass dort eine Perversion vorliegt. Aber wie gesagt: Diese Punkte sind in der Unterzahl, im Allgemeinen haben wir es hier mit Fortschritt zu tun!
    -Es gab auch zu eurer Zeit Leute, die sich für eine etwas weniger rückschrittliche Welt eingesetzt haben, Wehrdienst verweigerten und deinen ganzen Kram von Strenge und Härte verabscheut haben.
    -Zum zweiten Teil (Musik etc.) mal etwas aus meiner Perspektive:
    1. Elektronische Musik gab es schon viel früher und aus meiner Sicht auf höherem Niveau! (Karlheinz Stockhausen hatte auch schon in den 50ern seinen Synthesizer parat)
    2. Ich schere mich nicht um bekloppte populäre Musikkultur (bin halt'n Nerd :D), doch das Gehabe, damalige Drogen und damalige Gewalt wären besser als die heutigen Versionen, halte ich für Unsinn.
    3. MTV, Formel 1, CD-Werbespots, Magnum, Adidas, wen interessierts?
    4. Es gibt heute sehr viel billige Musik und es gab damals sehr viel billige Musik. Man muss sie ja nicht hören. Der ganze Pop-Kram ist auch nicht so neu. Ich höre gerne Neue Musik, einige, die ich kenne, hören gerne Metal, von einer Ausweitung des Charts-Hinterherjagens kann nicht ohne weiteres die Rede sein.

    Viele liebe Grüße
    The User

    Mit Pointern kann man Mist machen, mit Referenzen nicht.
    Klar, dass man Pointer braucht, aber wenn man nach Möglichkeit eine Referenz nimmt, kann sich jeder, der in den Code guckt (inklusive einem selbst), sicher sein, dass so ein Mist nicht angestellt wird, zumindest wenn man einen halbwegs anständigen Stil hat. (Mist: Zeigerarithmetik, delete-Aufruf...) Natürlich kann man eine Referenz in einen Zeiger umwandeln (und umgekehrt), aber man sollte stets den Typen als Parameter wählen, der der Aufgabe, die er zu erfüllen hat, am nächsten kommt. Und da Zeiger prinzipiell alles können, was Referenzen können, jedoch etwas mehr Schreibaufwand dafür brauchen ("*" und "->") und Referenzen auf Sicherheit hinweisen, wählt man wenn irgend möglich eine Referenz. Außerdem sind Referenzen generischer als Zeiger, da sie nicht ein eigener Typ von Wert sind (sie haben auch keine Werte-Semantik), sondern sich mit Ausnahme von der Erstellung, die an nur einer Stelle stattfindet (in diesem Fall findet sich in der Signatur der Funktion ein zusätzliches "&") exakt so wie der referenzierte Typ verhalten.
    Bei Objekten auf dem Heap sieht es noch mal etwas anders aus. Wenn ein Typ nicht kopierbar ist und fast immer auf dem Heap liegt, kann man sich aus Gründen der Generizität dafür entscheiden, immer Zeiger zu verwenden. Der Vorteil der Kompatiblität von Referenzen zu Werten liegt dann nämlich nicht mehr vor, da die Objekte niemals eine Werte-Semantik haben (private Kopierkonstruktor). Das ist jedoch hier nicht der Fall.

    Viele liebe Grüße
    The User

    Hallo!

    Ich möchte Zugriffsrechte für bestimmte Daten in einer MySQL-Datenbank speichern. Hierfür dachte ich mir, dass man bei jeder Aktion speichert, welche speziellen Benutzer und welche Gruppen von Benutzern sie für welchen Datensatz durchführen können.
    Mit einigen Tabellen habe ich das auch hinbekommen, ich bin allerdings sicherlich kein (My)SQL-Guru und mich würde sehr interessieren, ob vielleicht jemand eine bessere Idee hat (insbesondere meine Abfragen mit Sub-Selects sehen recht komplex aus). Wenn mir jemand sagen würde, dass es so in Ordnung ist - auch kein Problem. ;)

    Ich habe mal ein kleines Beispiel konstruiert:
    -articles: Die Daten, für deren Zugriff Rechte verwaltet werden müssen.
    -users: Die Benutzer mit Namen.
    -groups: Benutzergruppen mit Namen.
    -belonging: n:m-Relation zwischen users und groups.
    -acl_users_articles_read: n:m-Relation zwischen den Artikeln und den Benutzern, die sie lesen dürfen.
    -acl_groups_articles_read: n:m-Relation zwischen den Artikeln und den Gruppen, deren Mitglieder sie lesen dürfen.

    Die Tabellen (MySQL-Export):

    Eine Abfrage (uid ist dabei die Benutzer-ID für die gefiltert wird):

    SQL
    SELECT *  FROM articles
      WHERE uid IN
        (SELECT acl_users_articles_read.userid FROM acl_users_articles_read
          WHERE acl_users_articles_read.articleid = articles.id)
      OR uid IN
        (SELECT belonging.userid FROM belonging
          WHERE belonging.groupid IN
            (SELECT acl_groups_articles_read.groupid FROM acl_groups_articles_read
              WHERE acl_groups_articles_read.articleid = articles.id)
        )

    Danke im Voraus!

    The User