Dies funktioniert nicht in D:Übergeben auto-typisierte Vars, um in D zu funktionieren?
void doSomething(auto a, auto b){
// ...
}
Ich bin nur neugierig, wird dies jemals funktionieren? Oder ist das technisch unmöglich? (Oder einfach nur dumm?)
In jedem Fall, kann dies auf andere Weise erreicht werden? Ich nehme an, ich könnte die ...
verwenden und durch die Argumentliste schauen, aber ich mache irgendwie eine Bibliothek für faule Anfänger Leute und will, dass sie in der Lage sind, Funktionen leicht zu verursachen, ohne sich wirklich um Datentypen zu kümmern. Ich spiele mit dem Gedanken, eine Struktur var
wie
struct var{
byte type;
void* data
// ...
}
// and overload like all operators so that a lazy devver can do
var doSomething(var a, var b){
if(a == "hello")
b = 8;
var c = "No.:" ~ b ~ " says:" ~ a;
return c;
}
genannt Schaffung Aber mein Kopf beginnt bereits direkt dort zu verletzen. Und ich fühle irgendwie, dass ich etwas verpasse. Ich bin mir auch schmerzlich bewusst, dass dies wahrscheinlich die Vorlagen für ... Sind sie? Von der kleinen, ich weiß, würde eine Vorlage wie folgt aussehen (?)
void doSomething(T, U)(T a, U b){
// ...
}
Aber jetzt sieht es nicht mehr so sauber aus. Vielleicht bekomme ich das alles zurück. Vielleicht beruht meine Verwirrung auf meiner Überzeugung, dass auto
ein dynamischer Typ ist, vergleichbar mit var
ich Javascript, aber wenn in Wirklichkeit ist es etwas anderes?
Und wenn es kein dynamischer Typ ist, und dies ist wahrscheinlich ein ganz anderes Thema, ist es möglich, einen zu erstellen? Oder ist vielleicht sogar eine Open-Source-Lib verfügbar? Eine Liblazy vielleicht?
(. PS Ja, vielleicht der faule devver ist mir:)
Danke allen! Wusste nicht über Variante! Ok, ich verstehe Variante ist ein bisschen "Offroad" für D. – 0scar