Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

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>​