metaprogramming

¿Puede hacer operadores personalizados en C++?

¿Es posible hacer un operador personalizado para que pueda hacer cosas como esta? if ("Hello, world!" contains "Hello") ... Nota: esta es una pregunta separada de "¿Es una buena idea..." ;)

`responder?` vs `responder a perder?`

¿Cuál es el punto de definir respond_to_missing? en lugar de definir respond_to?? ¿Qué va mal si se redefine respond_to? para alguna clase?

Ordenación rápida en tiempo de compilación utilizando plantillas variádicas de C++11

Acabo de implementar el algoritmo de ordenación rápida mediante el uso de plantillas variádicas de C++11 para evaluarlo en el ... ma 1.7 s compilar. Cuando el conjunto de datos es TEST_DATA_1000, el compilador parece detenerse.... Estoy usando gcc 4.6.0.

Alguien puede explicar la Clase.superclase.clase.¿paradoja de la superclase?

Probablemente no sea una paradoja en absoluto, pero desde la perspectiva de los novatos, seguro que parece de esa manera. &g ... s => Module Entonces, ¿el padre de una clase es módulo, pero el módulo es una clase? ¿Cómo puedo darle sentido a esto?

SFINAE para comprobar si hay funciones miembro heredadas

Usando SFINAE, i puede detectar si una clase dada tiene una cierta función miembro. Pero, ¿qué pasa si quiero probar las fun ... ;B, void (B::*)()>::value << endl; // false } Entonces, ¿hay una manera de probar las funciones miembro heredadas?

Azúcar sintáctico en C/C++

He estado buscando en Ruby y encontrar sus palabras clave "hasta" y "a menos que" muy interesante. Así que pensé que era una ... return 0; } Sería genial si pudiera señalarme algunas referencias para trucos similares que puede ser empleado en C o C++.

Ruby: Cómo encadenar múltiples llamadas a métodos junto con " enviar"

Tiene que haber una forma construida de hacer esto, ¿verdad? class Object def send_chain(arr) o=self arr.each{|a| o=o.send(a) } return o end end

Metaprogramación de plantillas C++ - ¿Es posible generar el código generado?

Me gustaría depurar algún código templado para entenderlo mejor. Desafortunadamente soy nuevo en la metaprogramación de plant ... 5 000 líneas de código: / Entonces, ¿hay alguna forma de ver el Código generado? (La biblioteca que estoy usando es SeqAn)

¿Lenguajes no C++ para programación generativa?

C++ es probablemente el lenguaje más popular para metaprogramación estática y Java no lo soporta. ¿Hay otros lenguajes además de C++ que soporten programación generativa (programas que crean programas)?

Tutorial en línea de metaprogramación de Ruby [cerrado]

Acabo de empezar a aprender Ruby y tengo una buena visión de lo básico. Sigo escuchando que una de las cosas interesantes que ... metaprogramando moldes de pantalla. Entonces, ¿dónde puedo encontrar un buen tutorial de metaprogramación de Ruby en línea?

Cómo generar bucles anidados en tiempo de compilación

Tengo un entero N que conozco en tiempo de compilación. También tengo un std::array que contiene enteros que describen la f ... Sin embargo, no me interesa esta solución. Tampoco estoy interesado en soluciones que involucren la magia del preprocesador.

¿Decapado de clases generadas dinámicamente?

Estoy usando type() para generar dinámicamente clases que finalmente serán encurtidas. El problema es que el proceso de des-d ... bda self,x: 2*x , '__reduce__': lambda self: (dynamic,tuple()) } )() gg=cPickle.loads ( cPickle.dumps(g) ) print gg.run(10)

¿Cómo listar variables locales en Ruby?

def method a = 3 b = 4 some_method_that_gives # [a, b] end

Caracteres válidos en un nombre de clase python

Estoy creando clases de python dinámicamente, y sé que no todos los caracteres son válidos en este contexto. ¿Hay algún mé ... (por ejemplo, haciendo globals()[my_class.__name__] = my_class). La palabra reservada siempre tendrá prioridad en tal caso.

Por qué compilar error con enable if

¿Por qué esto no compila con gcc48 y clang32? #include <type_traits> template <int N> struct S { templat ... olución que funciona para mí. Haga que enable_if dependa de T: typename std::enable_if<(sizeof(T),N==1), int>::type

D Plantillas: Hack más fresco [cerrado]

¿Cuál es el truco de metaprogramación más genial algo práctico que hayas hecho o visto en el lenguaje de programación D? Medios algo prácticos excluyendo, por ejemplo, el raytracer en tiempo de compilación.

C++11 es el mismo rasgo de tipo para las plantillas

¿Es posible comprobar que el tipo T es un std::array de tipo y tamaño arbitrario? Puedo comprobar una matriz en particular, ... sto, no compila): is_same<T, std::array>::value ¿Hay alguna manera de lograr esto (tal vez no usando is_same)?

Cómo usar el método define dentro de initialize()

Tratando de usar define_method dentro de initialize pero conseguir undefined_method define_method. ¿Qué estoy haciendo mal? ... e method #{n}" } end end C.new("abc") #=> NoMethodError: undefined method `define_method' for #<C:0x2efae80>

¿Es posible crear e inicializar una matriz de valores usando metaprogramación de plantillas?

Quiero poder crear una matriz de valores calculados (digamos por simplicidad que quiero que cada valor sea el cuadrado de su ... de hacer esto sin recurrir a la metaprogramación de plantillas, solo preguntándose si es posible hacer esto con una matriz.)