<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://gsys.info/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://gsys.info/feed.php">
        <title>Genesys notes:type</title>
        <description></description>
        <link>http://gsys.info/</link>
        <image rdf:resource="http://gsys.info/lib/tpl/genesys/images/favicon.ico" />
       <dc:date>2026-05-01T22:43:45+02:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:absrel&amp;rev=1592991613&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:abstract&amp;rev=1457091954&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:configurable&amp;rev=1547754669&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:documentation&amp;rev=1694508629&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:element&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:entail&amp;rev=1675414888&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:enum&amp;rev=1531493844&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:feature_doc&amp;rev=1658410210&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:identifier&amp;rev=1438171762&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:implements&amp;rev=1500312770&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:init&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:io&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:logical&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:mutable_inheritance&amp;rev=1587072398&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:persist&amp;rev=1611613793&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:persistant&amp;rev=1609165563&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:profile&amp;rev=1549633288&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:property&amp;rev=1609165352&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:reflection&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:setup&amp;rev=1502899660&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:state&amp;rev=1468598504&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:stringchecker&amp;rev=1757705095&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:structofarrays&amp;rev=1464862192&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:subarrays&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:teapot&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:test&amp;rev=1432920408&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:type_templates&amp;rev=1659624441&amp;do=diff"/>
                <rdf:li rdf:resource="http://gsys.info/doku.php?id=notes:type:validate&amp;rev=1582288232&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://gsys.info/lib/tpl/genesys/images/favicon.ico">
        <title>Genesys</title>
        <link>http://gsys.info/</link>
        <url>http://gsys.info/lib/tpl/genesys/images/favicon.ico</url>
    </image>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:absrel&amp;rev=1592991613&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-24T11:40:13+02:00</dc:date>
        <title>notes:type:absrel</title>
        <link>http://gsys.info/doku.php?id=notes:type:absrel&amp;rev=1592991613&amp;do=diff</link>
        <description>abs/rel

Absolut und relativ verkörpern bei Dimensionshaltigen Datentypen wie int, double oder Point/Vector, Angle/AngleDelta die unterscheidung zugehöriger entsprechenden Relativtypen.

Datentypen beschreiben erstmal absolute Informationen.

Zieht man zwei Punkte voneinander ab, erhält man einen Vector.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:abstract&amp;rev=1457091954&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-03-04T12:45:54+02:00</dc:date>
        <title>notes:type:abstract</title>
        <link>http://gsys.info/doku.php?id=notes:type:abstract&amp;rev=1457091954&amp;do=diff</link>
        <description>abstract

abstract verlangt von einem Identifier, dass Zugriffe zu diesem Identifier abgefangen werden können. 


mystruct contains
  value is abstract int;


Der Zugriff auf Value kann in dieser Kompilier-Unit direkt auf das int schreiben und von dem int lesen. Extern muss allerdings eine Funktion mystruct</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:configurable&amp;rev=1547754669&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-17T20:51:09+02:00</dc:date>
        <title>notes:type:configurable</title>
        <link>http://gsys.info/doku.php?id=notes:type:configurable&amp;rev=1547754669&amp;do=diff</link>
        <description>configurable

Eine configurable-Methode hat keinen Zugriff auf irgendwelche eigenen Member, ggfs. auf Member der Basisklasse. Parameter sind möglich.

configurable Methoden sind in der Basisklasse bereits definiert und können wie virtuelle Methoden vorbelegt sein. Sinn der Sache ist, diese Methoden im Konstruktor der Basisklasse rufen zu können, um spezielle Konfigurationsdetails bei der Konstruktion abrufen zu können.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:documentation&amp;rev=1694508629&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T10:50:29+02:00</dc:date>
        <title>notes:type:documentation</title>
        <link>http://gsys.info/doku.php?id=notes:type:documentation&amp;rev=1694508629&amp;do=diff</link>
        <description>documentation

Fügt eine Dokumentation in den aktuellen Namensraum ein oder da, wo es angegeben ist.


documentation(global)
Bis /======== ist Dokumentation. Diese Seite heißt &quot;global&quot; und kann mit [[global]] verlinkt werden.
  
/========

documentation(global#name)
Diese Doku ist erreichbar mit [[global#name]] oder im Namensraum global unter [[#name]]</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:element&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:element</title>
        <link>http://gsys.info/doku.php?id=notes:type:element&amp;rev=1432920408&amp;do=diff</link>
        <description>element

Ein Element ist ein Datentyp, der einen Namen besitzt und eine Liste von Kindern, die entweder Strings oder weitere Elemente sein können.
Zusätzlich enthalten ist eine Referenz auf das übergeordnete Element, sofern vorhanden. Attribute können zugewiesen werden. Per Default sind Attribute &lt;string</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:entail&amp;rev=1675414888&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-03T10:01:28+02:00</dc:date>
        <title>notes:type:entail</title>
        <link>http://gsys.info/doku.php?id=notes:type:entail&amp;rev=1675414888&amp;do=diff</link>
        <description>entail

...dient dazu, eine Klasse um Funktionalität nachträglich zu erweitern.

Dazu bitte auch [url=&lt;https://www.fluentcpp.com/2017/12/12/mixin-classes-yang-crtp/]diesen&gt; Artikel[/url] über CRTP und Mixins lesen und überlegen, wie man entail templatisieren könnte, damit Funktionalität in wenigen Anweisungen vielen KLassen hinzugefügt werden kann.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:enum&amp;rev=1531493844&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-07-13T16:57:24+02:00</dc:date>
        <title>notes:type:enum</title>
        <link>http://gsys.info/doku.php?id=notes:type:enum&amp;rev=1531493844&amp;do=diff</link>
        <description>enums

Um einfache Enums kurz zu halten, können Werte des Basistyps einfach zugewiesen werden.


Digit enums int
{
  One   = 1;
  Two   = 2;
  Three = 3;
  Four  = 4;
  Five  = 5;
  Six   = 6;
};


Enumklassen sind normale Klassen, die öffentliche konstante, statische Member haben:</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:feature_doc&amp;rev=1658410210&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-21T15:30:10+02:00</dc:date>
        <title>notes:type:feature_doc</title>
        <link>http://gsys.info/doku.php?id=notes:type:feature_doc&amp;rev=1658410210&amp;do=diff</link>
        <description>feature

Ein Feature gehört zur Dokumentation einer Klasse oder Funktion.
Ein Feature beschreibt eine Eigenschaft der Klasse.

Beispiel: Man möchte AVL und RedBlack-Bäume vergleichen.
Um zu dokumentieren, dass sie eine Gemeinsamkeit haben, können beide Klassen mit</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:identifier&amp;rev=1438171762&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-29T14:09:22+02:00</dc:date>
        <title>notes:type:identifier</title>
        <link>http://gsys.info/doku.php?id=notes:type:identifier&amp;rev=1438171762&amp;do=diff</link>
        <description>Identifier

Identifier ist ein String, der zur Laufzeit ausgewertet werden kann. Er steht für ein Wort, dass kein Token ist, wie beispielsweise für einen Variablen-, Funktions- oder Methodennamen. Ein Identifier ist immer konstant und wird zur Compile-Zeit ausgewertet. Identifier können mit Identifiern und Stringkonstanten verbunden werden, es entsteht ein neuer Identifier.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:implements&amp;rev=1500312770&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-17T19:32:50+02:00</dc:date>
        <title>notes:type:implements</title>
        <link>http://gsys.info/doku.php?id=notes:type:implements&amp;rev=1500312770&amp;do=diff</link>
        <description>Implements

Implements beschreibt eine Funktion, die ein Interface implementiert. Erbt also eine Basisklasse ein Interface, so ist die Basisklasse abstrakt. Von der abstrakten Basisklasse können nun mehrere Ableitungen gemacht werden. Alle müssen das Interface implementieren, die Implementierung kann sich aber bei mehreren Ableistungen wiederholen und in eine Implementierung ausgelagert werden.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:init&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:init</title>
        <link>http://gsys.info/doku.php?id=notes:type:init&amp;rev=1432920408&amp;do=diff</link>
        <description>Auto

Auto würde ich von C++ gerne übernehmen, aber ich finde die Schreibweise zu lang. Auto an sich ist ein praktisches Feature, aber die halbautomatische Typisierung sollte einfacher gehen.

Normalerweise sollte so typsicher initialisiert werden.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:io&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:io</title>
        <link>http://gsys.info/doku.php?id=notes:type:io&amp;rev=1432920408&amp;do=diff</link>
        <description>io

Io ist quasi die Factory für Ein-Ausgabefunktionen.


Point contains x, y is double;
p is Point( 1., 2. );

file is io( &quot;json://test.test&quot; );

file &lt;&lt; p;  // schreibt &quot;{ 1., 2. }&quot; in die Datei.

q is Point;

file.rewind();

file &gt;&gt; q;  // Lädt den Punkt wieder ein.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:logical&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:logical</title>
        <link>http://gsys.info/doku.php?id=notes:type:logical&amp;rev=1432920408&amp;do=diff</link>
        <description>logical

...ist ein Datentyp, der vergleichsweise mit einem bool statt zwei vier Status unterscheiden kann:

	*  true
	*  false
	*  null
	*  unknown/uninitialized

Hauptgrund für diesen Datentyp ist die Information bei einem boolischen Wert, ob dieser mit</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:mutable_inheritance&amp;rev=1587072398&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-16T23:26:38+02:00</dc:date>
        <title>notes:type:mutable_inheritance</title>
        <link>http://gsys.info/doku.php?id=notes:type:mutable_inheritance&amp;rev=1587072398&amp;do=diff</link>
        <description>mutable inheritance

Variablen können mutable sein, wenn das Objekt konstant ist.

Wenn man mehr über Ableitungen zusammenbauen will, stellt sich die Frage, ob ein Const-Objekt auch eine mutable Ableitung haben können sollte.


Name is string;
Age is u32;

Person contains Name, Age var;</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:persist&amp;rev=1611613793&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-25T23:29:53+02:00</dc:date>
        <title>notes:type:persist</title>
        <link>http://gsys.info/doku.php?id=notes:type:persist&amp;rev=1611613793&amp;do=diff</link>
        <description>persist

Eine Konstante, die als const Referenz zurück gegeben wird, bleibt bestehen. Sie darf nicht variable konstruiert werden.



static Dependency::Collection const EmptyDepCollection;
Dependency::Collection const &amp; getTargetFiles() const
{
  BuildJob * job = getBuildJob();
  
  if( !job )
    return EmptyDepCollection;
}</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:persistant&amp;rev=1609165563&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-28T15:26:03+02:00</dc:date>
        <title>notes:type:persistant</title>
        <link>http://gsys.info/doku.php?id=notes:type:persistant&amp;rev=1609165563&amp;do=diff</link>
        <description>persistant

Eine Variable, die als persistant gekenntzeichnet wird, wird beim Anlegen aus der angegebenen Quelle gelesen, vor dem Zerstören in die angegebene Quelle geschrieben.


{
  a is int persistant( system.homedir.&quot;.mysoftware/config_a&quot; );       // int hat ein Null-Element: 0
  b is int persistant( system.homedir.&quot;.mysoftware/config_b&quot;, 4711 ); // b wird mit 4711 initialisiert, wenn nicht verfügbar

  a : 1;
} // a und b werden auf die Festplatte geschrieben.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:profile&amp;rev=1549633288&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-02-08T14:41:28+02:00</dc:date>
        <title>notes:type:profile</title>
        <link>http://gsys.info/doku.php?id=notes:type:profile&amp;rev=1549633288&amp;do=diff</link>
        <description>Profile

Ein Profil ist eine Möglichkeit, über Text einen eckige Grafik aufzubauen. Dies hat den Hintergedanken, sehr leicht in die
Grafikprogrammierung einsteigen zu können.

Dabei entspricht jedes Zeichen einem Unit.


p = profile

   O---------------+
   |               |
   |   +-----------+
   |   |
   |   |   +-------+
   |   |   |       |
   |   |   +---+   |
   |   |       |   |
   |   +-------+   |
   |               |
   +---------------+
   
&lt;code&gt;

Hieraus ebenso:
&lt;code&gt;
p = profile
…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:property&amp;rev=1609165352&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-28T15:22:32+02:00</dc:date>
        <title>notes:type:property</title>
        <link>http://gsys.info/doku.php?id=notes:type:property&amp;rev=1609165352&amp;do=diff</link>
        <description>Property


a is int property( getInt; setInt );


erstellt eine int-Variable, die allerdings über die Funktionen getInt und setInt gelesen oder beschrieben wird.


int getInt( int &amp; value ) : value;
int setInt( int &amp; value, int &amp; newValue ) : value = newValue;</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:reflection&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:reflection</title>
        <link>http://gsys.info/doku.php?id=notes:type:reflection&amp;rev=1432920408&amp;do=diff</link>
        <description>Reflection

reflects ist eine Klasse/Operator, die aus einem anderen Datentyp erzeugt werden kann. 


r reflects int;


r reflektiert anschließend int. r kann den Datentyp beschreiben:


print r.sizeof(), &quot;\n&quot;;
print r$, &quot;\n&quot;;
print r.isPrimitiv(), &quot;\n&quot;;

=&gt;
4
int
true</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:setup&amp;rev=1502899660&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-08-16T18:07:40+02:00</dc:date>
        <title>notes:type:setup</title>
        <link>http://gsys.info/doku.php?id=notes:type:setup&amp;rev=1502899660&amp;do=diff</link>
        <description>Achtung, das abstract hier kollidiert mit abstract und vielliecht sollte man es hier ändern.


GraphicObject contains                // enthält abstrakte Methoden, ergo nicht instanziierbar
{
  /* Dieses Objekt wird automatisch initialisiert */
    
  Name is         string : &quot;Gunther&quot;;

  /* Dieses Objekt wird automatisch initialisiert, die Zuweisung ist aber überschreibbar */
    
  Type is virtual string : &quot;unknown object&quot;;

  /* crude (unreif) erklärt, dass die Methode auch von unfertig kons…</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:state&amp;rev=1468598504&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-07-15T18:01:44+02:00</dc:date>
        <title>notes:type:state</title>
        <link>http://gsys.info/doku.php?id=notes:type:state&amp;rev=1468598504&amp;do=diff</link>
        <description>state

State ist eine verifizierbare Behauptung und entspricht quasi einem Assert.
Im Gegensatz zu assert wird state allerdings als Garantie aufgefasst.


a is int[];
a += 1;
a += 2;

state a.size &gt; 1;


Wir erklären hiermit, dass die Liste mehr als 1 Element besitzt ab der Stelle, in der das State-Element steht. Das ist zum einen eine Dokumentation, die im Debug-Modus verglichen werden kann und bemängelt werden kann, wenn sie nicht eingehalten wird, während sie im Release-Modus herausoptimiert …</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:stringchecker&amp;rev=1757705095&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-12T21:24:55+02:00</dc:date>
        <title>notes:type:stringchecker</title>
        <link>http://gsys.info/doku.php?id=notes:type:stringchecker&amp;rev=1757705095&amp;do=diff</link>
        <description>Stringchecker

gefunden: &lt;https://www.facebook.com/reel/4134641730137940&gt;



Das lässt sich ggfs. vielleicht als Konstruktor definieren:


rgbstring is string
{
  construct( string=&quot;rgb\{{\int(0..255)},{\int(0..255)},{\int(0..255)}}&quot; );
  construct( string=&quot;#{\int(0..255,hex)}{\int(0..255,hex)}{\int(0..255,hex)}&quot; );  // Nur so formatierte Strings werden akzeptiert
};</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:structofarrays&amp;rev=1464862192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-02T12:09:52+02:00</dc:date>
        <title>notes:type:structofarrays</title>
        <link>http://gsys.info/doku.php?id=notes:type:structofarrays&amp;rev=1464862192&amp;do=diff</link>
        <description>Struct of Array

In der Spieleentwicklung wird häufige ein Struct Of Array benötigt statt eines Arrays von Strukturen.

Statt


struct Color { int r, int g, int b };
struct Color Data[10];


also


struct ColorArray10
{
  int r[10];
  int g[10];
  int b[10];
}</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:subarrays&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:subarrays</title>
        <link>http://gsys.info/doku.php?id=notes:type:subarrays&amp;rev=1432920408&amp;do=diff</link>
        <description>subarrays

Ein Array-Objekt ist eine Referenz auf ein anderes Array-Objekt mit Längenangabe. Somit kann ein Bereich aus einem anderen Array übergeben werden.



func is code( par is int{} );  // automatisch ref, erhält also ein Array-Objekt

var is int{} = {1, 2, 3, 4, 5};
func( var{ 2..4 } ) );       // überträgt den Pointer var, den Pointer auf var[2] und 2 als Anzahl der Element, erhöht ggfs. den ref-Ptr von var und ruft die Funktion.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:teapot&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:teapot</title>
        <link>http://gsys.info/doku.php?id=notes:type:teapot&amp;rev=1432920408&amp;do=diff</link>
        <description>Teapot

Keine Ahnung, wozu dieser Datentyp gut sein soll muss, aber er muss rein. ^^

Idealerweise kann man irgendetwas sinnfreies damit machen und wenn es auch nur die Ausgabe mit $ ist. („Earl Grey“?)</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:test&amp;rev=1432920408&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-05-29T19:26:48+02:00</dc:date>
        <title>notes:type:test</title>
        <link>http://gsys.info/doku.php?id=notes:type:test&amp;rev=1432920408&amp;do=diff</link>
        <description>Datentyp test

Test ist eigentlich kein Datentyp, sondern eine besondere Form von code, die nur für einen Testlauf kompiliert wird und ansonsten ignoriert wird.
Tests drüfen andere Tests aufrufen, daher dürfen sie wie code auch beliebige Argumente haben. test darf code aufrufen, code darf aber niemals tests aufrufen.
Tests, die keine Argumente haben, werden im Testlauf ausgeführt.</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:type_templates&amp;rev=1659624441&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-04T16:47:21+02:00</dc:date>
        <title>notes:type:type_templates</title>
        <link>http://gsys.info/doku.php?id=notes:type:type_templates&amp;rev=1659624441&amp;do=diff</link>
        <description>type templates

ids sind strings, die Variablennamen oder Funktionsnamen beschreiben. Stringfunktionen (constexpr) werden zur compiletime ausgeführt.

Vector( v1 is id = x, v2 is id = y ) contains 
{ 
  v1, v2 is double;
  
  &quot;get&quot;+v1.FirstCharUpper() is method( return v1; }  // definiert Mathode getX()
  &quot;get&quot;+v2.FirstCharUpper() is method( return v2; }  // definiert Mathode getY()
};

Offsets is Vector( offset1, offset2 );

double x = Offsets.getOffset1()</description>
    </item>
    <item rdf:about="http://gsys.info/doku.php?id=notes:type:validate&amp;rev=1582288232&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-21T13:30:32+02:00</dc:date>
        <title>notes:type:validate</title>
        <link>http://gsys.info/doku.php?id=notes:type:validate&amp;rev=1582288232&amp;do=diff</link>
        <description>validate/guarantee

Mit validate möchte ich gerne Garantien beschreiben, die der Aufruf einer Funktion oder Methode garantieren muss.
Das Ziel sollte sein, dass ein Objekt unabhängig von den Funktionsaufrufen einen validen Status besitzt.

Beispiel 1: Funktion
Eine Funktion wird mit einem Array gerufen. Die Funktion arbeitet, wenn das Array null ist oder drei Elemente besitzt.</description>
    </item>
</rdf:RDF>
