Articles of macros

No se puede acceder a los miembros de los padres cuando se trata de macro anotaciones

Estoy bloqueado con la siguiente situación ( macro anotación ). Supongamos que tengo una anotación llamada @factory que pretende generar un método de apply para el rasgo anotado en el objeto complementario correspondiente. Por ejemplo, dado el trait A : @factory trait A { val a1: Int } el código esperado para generar es el […]

¿Cómo funciona el desplazamiento C de la macro?

Posible duplicado: ¿Por qué funciona este código C? ¿Cómo se usa offsetof () en una estructura? Leí sobre este offset de macro en Internet, pero no explica para qué se usa. #define offsetof(a,b) ((int)(&(((a*)(0))->b))) ¿Qué está tratando de hacer y cuál es la ventaja de usarlo?

¿Cómo generar una nueva línea en una macro cpp?

¿Cómo escribo una macro cpp que se expande para incluir nuevas líneas?

¿Qué tan grande puede ser un malloc en C?

Tengo un malloc en C que es 26901 ^ 2 * sizeof (doble) Esto me hizo pensar ¿cuál es el mayor valor aquí? Además, ¿tendría algún problema para definir una macro para acceder a esta matriz 2D? #define DN(i,j) ((int)i * ny + (int)j) Porque parece que esto no funciona para mí, o al menos […]

Tipo de retorno estático de las macros de Scala

Así que tengo esta 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) } He dicho tres veces que quiero que foo devuelva un Foo y, sin embargo, puedo hacer lo […]

¿Cuáles son las implicaciones de la macro linux __user?

Esperaba que alguien pudiera explicar los matices de la macro __user usada en la fuente del kernel de Linux. Primero que nada, la macro: # define __user __attribute__((noderef, address_space(1))) Ahora, después de buscar en Google, leí que esta macro permite designar un puntero como perteneciente al espacio de direcciones del usuario, y que no debe […]

¿Qué significa #x dentro de una macro C?

Por ejemplo, tengo una macro: #define PRINT(int) printf(#int “%d\n”,int) Yo sé un poco cuál es el resultado. Pero ¿cómo es posible que #int vuelva a aplicar todo? Me olvido un poco de este detalle. ¿Alguien puede darme una pista amable? ¡Gracias!

C Macros para crear cadenas

Títulos alternativos (para ayudar a la búsqueda) Convierta un token de preprocesador a una cadena ¿Cómo hacer una cadena de caracteres desde el valor de una macro de C ? Pregunta original Me gustaría usar C #define para comstackr cadenas literales en tiempo de comstackción. La cadena son dominios que cambian por depuración, lanzamiento, etc. […]

Es #pragma una vez parte del estándar C ++ 11?

Tradicionalmente, la forma estándar y portátil de evitar múltiples inclusiones de encabezado en C ++ era / es utilizar el esquema de directivas #ifndef – #define – #endif también denominado esquema de #ifndef – #define – #endif (vea el fragmento de código a continuación). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP … #endif Sin embargo, en la mayoría […]

¿Cuál es la forma más fácil de usar reify (obtener un AST de) una expresión en Scala?

Estoy buscando alternativas a la -print o javap como una forma de averiguar qué está haciendo el comstackdor en Scala. Con la nueva biblioteca de reflexión / macros, reify parece ser un buen candidato para eso, como se muestra en el macroáz de retronym ‘s desugar . Incluso muestra cómo se solía hacer eso, antes […]