Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Traits

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.08.2006, 13:27 Uhr
enriico



Was genau sind Traits? Was genau sind Iterator_Traits? Ich blicke noch nicht so ganz durch!

/*
Traits sind ein Konzept um zur Compilezeit Zusatzinformation zu Datentypen für die Nutzung in Template-Instanziierungen bereitzustellen
*/
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.08.2006, 16:35 Uhr
Th



Traits (engl. für Merkmale) dienen dazu, eine Template-Klasse allgemeingültiger gegenüber den Parametern zu machen, d.h. das Verhalten bestimmter Werte oder Funktionen wird mittels dieser Trait-Parameter bestimmt.

Ein Beispiel ist das Template std::basic_string welches nicht nur den internen Zeichentyp, sondern auch einen Trait-Parameter (plus Allocator) erwartet.

Die Template-Klasse std::char_traits implementiert dann das Verhalten der verschiedenen Zeichen-Typen (char, wchar_t, ...).

Bei der Template-Klasse std::iterator_traits werden die Datentypen für die Iterator-Operatoren per typedef definiert. Durch Template-Spezialisierungen können dann explizite Datentypen definiert werden (z.B. für die Zeigertypen Type* und const Type*), welche sonst kein korrektes Verhalten zeigen würden, z.B. ein Iterator auf einen Zeiger ist immer noch ein Zeiger und kein Zeiger auf nen Zeiger etc.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.08.2006, 19:49 Uhr
Spacelord
Hoffnungsloser Fall


Schau dir doch das mal an:
www.aristeia.com/publications_frames.html

Gruss Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2006, 12:00 Uhr
enriico



wäre dies nun richtiger Code für ein Trait?

template <typename T>
struct mytraits {
typedef T* pointer_type;
typedef T& reference_type;
}
mytraits<int>::pointer_type pi;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: