Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FB Templates / std::list?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Progger_X
Mr. Lagg


Anmeldungsdatum: 24.11.2004
Beiträge: 784
Wohnort: Leipzig

BeitragVerfasst am: 11.10.2007, 13:27    Titel: FB Templates / std::list? Antworten mit Zitat

Hallo Leute,

ich habe mich vor kurzem mal wieder an FB rangesetzt, bzw. bin gerade dabei. Da ich länger mit C++ gearbeitet habe, stellt sich mir grad die Frage, ob ich irgendwas wie Listen in C++ habe, oder Vektoren oder dieser ganze Container-Krimskrams.

Und wenn nicht: gibt es irgend eine Möglichkeit, Type's so zu schreiben, dass eine Variable vom Typ eines beliebigen anderen Types genutzt wird?

Also etwa so:

Code:

TYPE liste<Type>
  naechster AS liste PTR
  inhalt AS <beliebigerType>
END TYPE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 11.10.2007, 14:13    Titel: Antworten mit Zitat

Templates gibt's so in FB noch nicht, ist auch eine recht komplexe Geschichte, das zu implementieren:
Wikipedia hat Folgendes geschrieben:

Schon allein die Umsetzung des Sprachmittels export, das zur Unterstützung von Templates dient, wird mit etwa 2 bis 3 Mannjahren veranschlagt, ein Zeitraum, in dem für andere Programmiersprachen komplette Compiler entstehen.


Müsstest dir also immer eigene Listen-Types schreiben, oder evtl. lässt sich auch mit dem Präprozessor etwas machen?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 11.10.2007, 16:24    Titel: Antworten mit Zitat

Hab ich bei der interpreteraufhabe so gelöst, ist aber unschön so zu lösen:


Code:

#macro udt(typ)
    Type liste
        naechster As liste ptr
        inhalt As typ
    End Type
#endmacro


udt(integer)
udt(byte)
udt(any ptr)
udt(zstring ptr)
udt(blubber)
....


So in etwa sollte es gehen.
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 11.10.2007, 22:22    Titel: Antworten mit Zitat

Hi Progger_X!

Berechtigte Frage, aber so weit ist FB leider noch nicht traurig.

Aber was noch nicht da ist, lässt sich ja wenigstens in einfacher Art selbst erstellen. Siehe hier:
Oma-Tutorial, Teil 3, Thema Listen und Hash-Listen. Allerdings ist dort push_back, bzw. insert definiert, aber noch nicht delete. Aber das selbst zu machen, dürfte nicht so schwer fallen.

Wenn du es professioneller willst, müsstest du zur glib greifen. Die hat Containerklassen.

Edit: Dein Problem mit "Types von Types". Container-Probleme löst man in C, FB, Pascal etc. anders: Mit Callback-Funktionen und typlosen Pointern. Die Pointer enthalten das Objekt und die Callbacks definieren die typspezifischen Operationen.

Viel Spass damit!

Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 12.10.2007, 12:17    Titel: Antworten mit Zitat

Mao hat Folgendes geschrieben:
Templates gibt's so in FB noch nicht, ist auch eine recht komplexe Geschichte, das zu implementieren:
Wikipedia hat Folgendes geschrieben:

Schon allein die Umsetzung des Sprachmittels export, das zur Unterstützung von Templates dient, wird mit etwa 2 bis 3 Mannjahren veranschlagt, ein Zeitraum, in dem für andere Programmiersprachen komplette Compiler entstehen.


Müsstest dir also immer eigene Listen-Types schreiben, oder evtl. lässt sich auch mit dem Präprozessor etwas machen?


Ist dir "export" so wichtig? Hast du einen Compiler, der das unterstützt?
Ich glaube nicht, dass hier alles gefordert wird, was C++-Templates können, sondern einfach nur eine einfache Form von Generics/Templates gewünscht ist, so das man typsichere Collections, etc. bauen kann. Ein Sprach-Element, auf das heutzutage keine statisch typisierte Sprache verzichtet.
_________________
Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 12.10.2007, 14:54    Titel: Antworten mit Zitat

Nein, hab ich nie behauptet, wollte es bloß mit einfließen lassen um indirekt sowas zu sagen wie "Komplex.". Zunge rausstrecken
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz