Als «metaprogramming» getaggte Fragen

Metaprogrammierung ist die Fähigkeit, die Programmierumgebung wie bei Makros oder Metaklassen neu zu programmieren.





5
Kann eine Zeile Python-Code die Verschachtelungsebene für Einrückungen kennen?
Von so etwas: print(get_indentation_level()) print(get_indentation_level()) print(get_indentation_level()) Ich möchte so etwas bekommen: 1 2 3 Kann sich der Code auf diese Weise selbst lesen? Ich möchte nur, dass die Ausgabe der stärker verschachtelten Teile des Codes stärker verschachtelt ist. Auf die gleiche Weise, wie dies das Lesen von Code erleichtert, würde …

15
Bequemes Deklarieren von Zeichenfolgen zur Kompilierungszeit in C ++
Das Erstellen und Bearbeiten von Zeichenfolgen während der Kompilierungszeit in C ++ bietet mehrere nützliche Anwendungen. Obwohl es möglich ist, Zeichenfolgen zur Kompilierungszeit in C ++ zu erstellen, ist der Prozess sehr umständlich, da die Zeichenfolge als variable Zeichenfolge deklariert werden muss, z using str = sequence<'H', 'e', 'l', 'l', …

4
Ist es möglich, den Parametertyp und den Rückgabetyp eines Lambda herauszufinden?
Ist es bei einem Lambda möglich, den Parametertyp und den Rückgabetyp herauszufinden? Wenn ja, wie? Grundsätzlich möchte ich, lambda_traitswelche auf folgende Arten verwendet werden kann: auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should be int lambda_traits<decltype(lambda)>::return_type l; //l should be long Die Motivation dahinter ist, …


3
Objective-C-Klasse -> Zeichenfolge wie: [NSArray className] -> @ “NSArray”
Ich versuche, einen Zeichenfolgennamen einer Klasse aus dem Klassenobjekt selbst abzurufen. // For instance [NSArray className]; // @"NSArray" Ich habe festgestellt, object_getClassName(id obj)aber dafür muss eine Instanz übergeben werden, und in meinem Fall ist das unnötige Arbeit. Wie kann ich also eine Zeichenfolge aus einem Klassenobjekt und nicht aus einer …

7
Was genau ist Metaprogrammierung?
Ich habe einen Artikel über TheServerSide gelesen Ployglot-Programmierung auf der Java-Plattform gelesen . Einige Kommentare im Artikel beziehen sich auf Metaprogrammierung als die Fähigkeit, Code zu generieren (möglicherweise im laufenden Betrieb). Ist Metaprogrammierung die Fähigkeit, Code im laufenden Betrieb zu generieren, oder ist es die Fähigkeit, Methoden und Attribute zur …

13
Wie kann man einen C # -, C ++ - oder Java-Compiler steuern, um 1 + 2 + 3 +… + 1000 zur Kompilierungszeit zu berechnen?
In einem kürzlich geführten Interview wurde mir eine wirklich seltsame Frage gestellt. Der Interviewer fragte mich, wie ich 1 + 2 + 3 + ... + 1000 nur mit Compiler-Funktionen berechnen kann. Dies bedeutet, dass ich kein Programm schreiben und ausführen darf, sondern nur ein Programm schreiben sollte, das den …

9
C ++ SFINAE Beispiele?
Ich möchte mehr über die Meta-Programmierung von Vorlagen erfahren. Ich weiß, dass SFINAE für "Substitutionsfehler ist kein Fehler" steht. Aber kann mir jemand eine gute Verwendung für SFINAE zeigen?

8
Beste Einführung in die Metaprogrammierung von C ++ - Vorlagen? [geschlossen]
Geschlossen. Diese Frage entspricht nicht den Richtlinien für Stapelüberlauf . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so dass es beim Thema für Stack - Überlauf. Geschlossen vor 3 Jahren . Verbessere diese Frage Statische Metaprogrammierung (auch als "Template-Metaprogrammierung" bezeichnet) ist eine großartige …

1
Wie macht Pony (ORM) seine Tricks?
Pony ORM macht den netten Trick, einen Generatorausdruck in SQL zu konvertieren. Beispiel: >>> select(p for p in Person if p.name.startswith('Paul')) .order_by(Person.name)[:2] SELECT "p"."id", "p"."name", "p"."age" FROM "Person" "p" WHERE "p"."name" LIKE "Paul%" ORDER BY "p"."name" LIMIT 2 [Person[3], Person[1]] >>> Ich weiß, dass in Python eine wunderbare Selbstbeobachtung und …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.