Articles of macros

Macros préprocesseurs récursifs variadiques – est-ce possible?

J’ai rencontré un petit problème théorique. Dans un morceau de code, je maintiens un ensemble de macros comme #define MAX_OF_2(a, b) (a) > (b) ? (a) : (b) #define MAX_OF_3(a, b, c) MAX_OF_2(MAX_OF_2(a, b), c) #define MAX_OF_4(a, b, c, d) MAX_OF_2(MAX_OF_3(a, b, c), d) …etc up to MAX_OF_8 Ce que je voudrais faire, c’est les […]

Type de retour statique des macros Scala

J’ai donc cette macro: import language.experimental.macros import scala.reflect.macros.Context class Foo class Bar extends Foo { def launchMissiles = “launching” } object FooExample { def foo: Foo = macro foo_impl def foo_impl(c: Context): c.Expr[Foo] = c.Expr[Foo](c.universe.reify(new Bar).tree) } J’ai dit trois fois que je voulais que foo renvoie un Foo , et pourtant je peux faire […]

Postgres échoue avec ‘Impossible d’ouvrir le fichier de mappage de relation «global / pg_filenode.map»’

J’ai un problème avec mon installation de postgres dans mon environnement de développement et j’ai besoin d’aide pour le diagnostiquer. Je n’ai pas encore eu de chance pour trouver une solution. J’ai postgres 9.0.4 installé avec homebrew Je tourne sous OS X 10.6.8 (Snow Leopard) Je peux démarrer et arrêter le serveur $ pg_ctl -D […]

Où puis-je en savoir plus sur la construction d’AST pour les macros Scala?

Où puis-je apprendre à construire les AST générés par les macros de Scala? Le Scaladoc n’est pas aussi utile que je le souhaiterais. Par exemple: abstract def Apply(sym: Universe.Symbol, args: Universe.Tree*): Universe.Tree A factory method for Apply nodes. Mais comment puis-je déterminer ce qu’est un noeud Apply? Où puis-je trouver une liste des types de […]

Que fait la macro Q_D dans Qt

Q_D code source de Qt et je suis tombé sur cette macro Q_D . Quelqu’un pourrait-il expliquer ce qu’il fait? Presque tout le temps, il devrait retourner un widget du type donné en paramètre qui est la variable d . Besoin de plus de précisions à ce sujet.

Installer Docker Toolbox sur un Mac via la ligne de commande

J’essaie d’automatiser la configuration d’un environnement de développeur sur Mac. Une partie de cette installation consiste à installer la boîte à outils Docker . Je ne trouve aucune documentation sur la façon de procéder via la ligne de commande. Comment puis-je automatiser cette installation (doit être déclenché via la ligne de commande)? Mise à jour: […]

Mmh, qui êtes-vous PRIu64?

Je suis nouveau à C et je suis confronté à: #include #include int main(void) { uint64_t foo = 10; printf(“foo is equal to %” PRIu64 “!\n”, foo); return 0; } Et il fonctionne! Je ne comprends pas pourquoi? Quelqu’un peut-il m’aider à ce sujet? Merci beaucoup! Torr

Jusqu’où peuvent aller les macros LISP?

J’ai beaucoup lu que LISP peut redéfinir la syntaxe à la volée, probablement avec des macros. Je suis curieux de savoir jusqu’où cela va réellement? Pouvez-vous redéfinir la structure de la langue à un point tel qu’elle devient un compilateur pour une autre langue? Par exemple, pourriez-vous changer la nature fonctionnelle de LISP en une […]

Peut-on avoir des macros récursives?

Je veux savoir si nous pouvons avoir des macros récursives en C / C ++? Si oui, veuillez fournir un exemple d’exemple. Deuxième chose: pourquoi ne puis-je pas exécuter le code ci-dessous? Quelle est l’erreur que je fais? Est-ce à cause de macros récursives? # define pr(n) ((n==1)? 1 : pr(n-1)) void main () { […]

Evaluation paresseuse vs Macros

Je suis habitué à l’évaluation paresseuse de Haskell, et je me trouve irrité par les langues par défaut maintenant que j’ai utilisé l’évaluation paresseuse correctement. Ceci est en fait très dommageable, car les autres langages que j’utilise font surtout des évaluations paresseuses très compliquées, impliquant normalement le déploiement d’iterators personnalisés, etc. Donc, en acquérant des […]