Articles of macros

Come domare le intestazioni di Windows (utile definisce)?

In una delle risposte a questa domanda jalf ha parlato di utile definire NOMINMAX , che potrebbe impedire di definire macro min / max indesiderate. Ci sono altre utili definizioni che possono aiutare a controllare windows.h (o altre intestazioni di Windows, ad esempio le intestazioni di Microsoft C Runtime o l’implementazione STL)?

Matematica: Non rivalutato vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc

Sono sconcertato da tutte le funzioni matematiche incorporate che pretendono di impedire la valutazione in qualche modo: Non Unevaluated , Unevaluated , Hold e oltre mezza dozzina del modulo Hold* . La documentazione di Mathematica spiega semplicemente ciascuna funzione in modo isolato senza spiegare perché scegliere l’una o l’altra. Qualcuno può offrire una spiegazione coerente […]

È ansible dichiarare le variabili proceduralmente usando le macro di Rust?

Fondamentalmente, ci sono due parti per questa domanda: Puoi passare un identificatore sconosciuto a una macro in Rust ? Puoi combinare stringhe per generare nuovi nomi di variabili in una macro di Rust? Ad esempio, qualcosa come: macro_rules! expand( ($x:ident) => ( let mut x_$x = 0; ) ) Calling expand! (Hi) ovvio fallisce perché […]

Le macro Variadic non sono standard?

Per i debugbuild, di solito uso Clang, in quanto formatta meglio avvisi e errori, e rende un po ‘più facile rintracciarli e correggerli. Ma recentemente dopo aver aggiunto una macro con argomenti variadici, Clang mi ha detto quanto segue (da un progetto fittizio): main.cpp:5:20: warning: named variadic macros are a GNU extension [-Wvariadic-macros] #define stuff3(args…) […]

C’è un modo per contare con i macro?

Voglio creare una macro che stampa “Hello” un numero specificato di volte. È usato come: many_greetings!(3); // expands to three `println!(“Hello”);` statements Il modo ingenuo per creare quella macro è: macro_rules! many_greetings { ($times:expr) => {{ println!(“Hello”); many_greetings!($times – 1); }}; (0) => (); } Tuttavia, questo non funziona perché il compilatore non valuta le […]

Imansible accedere ai membri del genitore mentre si gestiscono le annotazioni macro

Sono un po ‘bloccato con la seguente situazione ( annotazione macro ). Supponiamo di avere un’annotazione chiamata @factory che mira a generare un metodo di apply per il tratto annotato nell’object associato corrispondente. Ad esempio, dato il trait A : @factory trait A { val a1: Int } il codice atteso da generare è il […]

Come funziona la correzione C della macro?

Possibile duplicato: Perché funziona questo codice C? Come si usa offsetof () su una struct? Ho letto di questo offset di macro su Internet, ma non spiega a cosa serve. #define offsetof(a,b) ((int)(&(((a*)(0))->b))) Cosa sta cercando di fare e qual è il vantaggio di usarlo?

I modelli C ++ sono solo delle macro sotto mentite spoglie?

Ho programmato in C ++ per alcuni anni, e ho usato STL un bel po ‘e ho creato le mie classi di template alcune volte per vedere come è fatto. Ora sto cercando di integrare i template più in profondità nel mio design OO, e un pensiero fastidioso continua a tornare da me: sono solo […]

C Macro per creare stringhe

Titoli alternativi (per facilitare la ricerca) Convertire un token del preprocessore in una stringa Come creare una stringa di caratteri dal valore di una macro C ? Domanda originale Vorrei usare C #define per build stringhe letterali in fase di compilazione. La stringa sono domini che cambiano per il debug, il rilascio ecc. Vorrei qualcosa […]

Widget “capovolgi” comportamento in Core Animation / Cocoa

Sto cercando di creare una class Card che duplichi il comportamento dei widget di Dashboard in quanto è ansible inserire controlli o immagini o qualsiasi altra cosa su due lati della carta e capovolgerli. Le viste con layer supportato hanno una proprietà di trasformazione, ma l’alterazione non fa ciò che mi aspetterei che faccia (ruotando […]