Resultados de la búsqueda a petición "metaprogramming"

4 la respuesta

Es posible implementar getters / setters dinámicos en JavaScript?

Soy consciente de cómo crear captadores y establecedores para propiedades cuyos nombres ya se conocen, haciendo algo como esto: // A trivial example: function MyObject(val){ this.count = 0; this.value = val; } MyObject.prototype = { get ...

7 la respuesta

¿Existe un gancho similar a la clase # heredada que se activa solo después de una definición de clase Ruby?

#inherited se llama justo después declass Foo declaración. Quiero algo que se ejecutará solo después de laend declaración que cierra la declaración de clase. Aquí hay un código para ejemplificar lo que necesito: class Class def inherited m ...

4 la respuesta

Es posible averiguar el tipo de parámetro y el tipo de retorno de una lambda?

Dada una lambda, ¿es posible descubrir su tipo de parámetro y el tipo de retorno? En caso afirmativo, ¿cómo? Básicamente, quierolambda_traits que se puede usar de las siguientes maneras: auto lambda = [](int i) { return long(i*10); ...

2 la respuesta

Buscar clases disponibles en un Módulo

Tengo un móduloMyModule. Carga dinámicamente clases en él. ¿Cómo puedo obtener una lista de las clases definidas dentro de su espacio de nombres? Ejemplo def load_plugins Dir.glob(File.dirname(__FILE__) + '/plugins/*.rb') do ...

22 la respuesta

¿Qué es exactamente Reflection y cuándo es un buen enfoque?

¿Qué es exactamente Reflection? Leí el artículo de Wikipedia sobre este tema y entiendo que es una especie de metaprogramación, donde el programa puede modificarse en tiempo de ejecución, pero ¿qué significa esto? ¿En qué tipo de situaciones es ...

4 la respuesta

ropiedad @metaClass en clases de Java en groovy

Estoy aprendiendo de maravilla y tengo una pregunta sobre sus instalaciones de metaprogramación. Por lo que entiendo, cada objeto en groovy implementa la interfaz groovy.lang.GroovyObject (implícitamente agregado por el compilador groovy). La ...

8 la respuesta

C ++ 11 argumento de la función constexpr pasado en plantilla argumento

Esto solía funcionar hace algunas semanas: template <typename T, T t> T tfunc() { return t + 10; } template <typename T> constexpr T func(T t) { return tfunc<T, t>(); } int main() { std::cout << func(10) << std::endl; return 0; }Pero ahorag++ ...

2 la respuesta

ransformar el tipo de tupla

Así que soy nuevo para impulsar MPL, y no sé cómo usarlo con tipos estándar. Quiero una metafunción que encubra este tipo: std::tuple<T0, T1, ..., TN>Dentro de esto std::tuple< std::function<T0(std::tuple<T0, T1, ...>, std::tuple<T0, T1, ...

4 la respuesta

¿Cómo cambiar uno mismo en un bloque como hace el método instance_eval?

l método @instance_eval cambia self en su bloque, por ejemplo: class D; end d = D.new d.instance_eval do puts self # print something like #<D:0x8a6d9f4>, not 'main'! end Si definimos un método nosotros mismos (o cualquier otro método (que no sea ...

6 la respuesta

Lista de métodos de metaprogramación Ruby @

Solo comenzó a aprender la metaprogramación de Ruby. Mirando Object.methods obtengo: Object.methods => [ :allocate, :new, :superclass, :freeze, :===, :==, :<=>, :<, :<=, :>, :>=, :to_s, :included_modules, :include?, :name, ...