Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| — |
notes:func:interfacefac [2024/06/03 09:23] (aktuell) xin angelegt |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Interface als Factory ====== | ||
| + | [[notes:interface:interface|Interfaces]] beschreiben Fähigkeiten, die ein Datentypen besitzen muss. | ||
| + | |||
| + | Nimmt man einen Container, so kann man Ansprüche oder Prioritäten an den Container stellen, die er erfüllen muss. Beispielsweise Indexable, Iterable, PriorityRead, Insertable, NonRelocatable. | ||
| + | Datentypen können Addierbar (Pointer), Selbst-Multiplizierbar (ergibt bei Pointern keinen Sinn), Integer-Multiplizierbar sein. Sie könnten Integer und/oder Nativ sein. | ||
| + | Der Compiler kann dann anhand der Liste gewünschter Eigenschaften entscheiden, ob es einen passenden Datentyp gibt über eine [[notes:func:Factory]]-Funktion. | ||
| + | |||
| + | <code> | ||
| + | using MyContainer_t = Container( Container::Iterable | Container::Insertable | Container::PriorityBalanced | NonRelocatable ); | ||
| + | </code> | ||