Tag: CONFLUENCE-MACROS
Tengo esta macro que detecta si una variable es un objeto: #define IS_OBJECT(x) ( strchr(“”@#””, @encode(typeof(x))[0]) != NULL ) #define AUTO_BOX(x) IS_OBJECT(x) ? x : @(x) Quería simplificar mi flujo de trabajo al envolver automáticamente cualquier primitivo para poder hacer rápidamente algo como esto: BOOL v1 = YES; id v2 . . . Read more
En <vadefs.h> encontrarás la siguiente definición para la macro _ADDRESSOF(v) en VS2019: #ifdef __cplusplus #define _ADDRESSOF(v) (&const_cast<char&>(reinterpret_cast<const volatile char&>(v))) #else #define _ADDRESSOF(v) (&(v)) #endif Me gustaría entender la primera definición anterior, cuando se define __cplusplus. ¿Por qué funciona?
Necesito que boo tome dos variables/constantes explícitas o una única invocación de macro que se expanda en dos variables/constantes. Actualmente, esto no se compila. Como se puede observar, una vez que foo se expande, no parece tratarse como argumentos múltiples para boo. #include <iostream> #include <string> int getInt(int x, int . . . Read more
Me gustaría expandir cada argumento con su nombre, seguido por el valor, por ejemplo: #define LOG_VARIABLES(FORMAT, …) NSLog(FORMAT, ##__VA_ARGS__) //No estoy seguro de qué hacer con ##__VA_ARGS__ aquí para que se expanda como se describe a continuación LOG_VARIABLES(@”%@: %@, %@: %@”, arg1, arg2, arg3) se expandiría a STRING_VALUE__(arg1), arg1, STRING_VALUE__(arg2), . . . Read more
Estoy experimentando con las macros de Julia. Una cosa que me interesa particularmente es la capacidad de extraer el grafo de llamadas alcanzables de una función sin tener que compilar completamente el código. Por “grafo de llamadas alcanzables” me refiero a todas las funciones encontradas dentro del cuerpo de una . . . Read more