Описание тега metaprogramming
Метапрограммирование - это возможность перепрограммировать среду программирования, например, с помощью макросов или метаклассов.
3
ответа
Как мне вызвать + методы класса в Objective C без ссылки на класс?
У меня есть ряд объектов "policy", которые, на мой взгляд, было бы удобно реализовать в виде методов класса для набора классов политики. Я указал протокол для этого и создал классы для соответствия (только один показан ниже) @protocol Counter +(NSIn…
31 май '09 в 12:07
3
ответа
Автопараметрия и метапрограммирование
Ну, код говорит больше (я жестко закодировал некоторые вещи, чтобы изолировать проблему и сделать вопрос короче): class wrapper: def __init__( self, func ): self.func = func def __call__( self, *args ): print( "okay, arg = ", args[0] ) self.func( se…
21 июн '11 в 17:49
1
ответ
Используя Moose, как мне установить значение атрибута ro в атрибуте runtime?
У меня есть атрибут атрибута, который я хочу установить на основе других атрибутов класса. Я действительно хочу по умолчанию для Attribute Trait, который получает копию класса $self а не мета для атрибута. Я хочу сделать что-то подобное в своем клас…
16 ноя '10 в 16:36
1
ответ
__new__ в модуле дробей
Я пытался понять __new__ и метапрограммирование. Итак, я взглянул на официальный исходный код Python. http://hg.python.org/cpython/file/2.7/Lib/fractions.py Их __new__ Функция для дроби выглядит так: class Fraction(Rational): def __new__(cls, numera…
28 апр '14 в 03:31
2
ответа
Когда отдавать предпочтение нетипизированным над напечатанными цитатами в F#?
F# имеет как типизированные, так и нетипизированные цитаты кода, и мне интересно, каковы случаи использования, когда один выбирает один над другим? Является ли различие только удобством, а нетипизированные и типизированные цитаты могут быть преобраз…
17 май '12 в 17:57
3
ответа
Определение нового логического оператора в Ruby
Это настоящий сон, но возможно ли с помощью какого-то хитрого метапрограммирующего трюка определить новый логический оператор в Ruby? Я хотел бы определить but оператор. Например, если я хочу что-то сделать, если x но нет y это правда, я должен напи…
28 ноя '11 в 14:53
1
ответ
Могу ли я по умолчанию использовать шаблонный аргумент в предварительной декларации
Поэтому я пытаюсь понять, что происходит с Boost's ptree реализация. В ptree.hpp basic_ptree на самом деле определяется: template<class Key, class Data, class KeyCompare> class basic_ptree В ptree_fwd.hpp есть то, что выглядит как предваритель…
16 янв '18 в 13:50
1
ответ
Как получить список методов, определенных в подклассе в Ruby?
Допустим, у меня есть некоторый код ruby, подобный этому: class ParentClass def method1 # some code end end class MyAwesomeSubclass < ParentClass def method1 # some code end def method2 # more code end end Есть ли способ получить список методов, …
28 ноя '13 в 00:36
1
ответ
Рубиновый эквивалент метакласса Groovy.method_name
У меня есть метод где symbol_price хеш с ключами в качестве символов и ценой в качестве значений. def get_price_for_symbol(symbol_price, symbol) symbol_price[symbol] end В Groovy, если мы хотим макетировать метод основного класса get_price_for_symbo…
03 окт '13 в 16:45
1
ответ
Цитаты F#: переменная может выходить за рамки
У меня есть немного кода: let rec h n z = if n = 0 then z else <@ (fun x -> %(h (n - 1) <@ x + %z @>)) n @> преобразован из примера MetaOcaml в http://www.cs.rice.edu/~taha/publications/journal/dspg04a.pdf В статье объясняется, что пр…
20 июн '11 в 16:06
3
ответа
Нельзя использовать аргумент шаблона в объявлении функции
Я изо всех сил пытаюсь найти вескую причину, почему следующий код не компилируется. Это дает мне следующую ошибку. Ошибка 2 ошибка C2923: 'std::pair': 'std::set::iterator' не является допустимым аргументом типа шаблона для параметра '_Ty1' Мне нужно…
25 сен '11 в 17:02
1
ответ
Передача функции указателя на член в шаблон
Интересно, как я могу передать указатель на нестатическую функцию-член в шаблон? Вот упрощенный код: template<typename, typename> struct contains; template<typename T, typename R, typename... Ts> struct contains<T, R(Ts...)> { stat…
28 июн '18 в 16:44
2
ответа
Как получить список файлов, которые были "обязательны" в Ruby?
Это чисто эксперимент, но мне интересно, можно ли получить список requireбы жемчужины во время выполнения с помощью какого-то метапрограммирования. Например, скажем, у меня есть: require 'rubygems' require 'sinatra' require 'nokogiri' # don't know w…
25 авг '11 в 12:04
6
ответов
Макрос / метапрограмма C++ для определения количества членов во время компиляции
Я работаю над приложением с основанной на сообщениях / асинхронной агентоподобной архитектурой. Будет несколько десятков различных типов сообщений, каждый из которых представлен типами C++. class message_a { long long identifier; double some_value; …
27 июл '11 в 12:52
2
ответа
Могу ли я определить __repr__ для класса, а не для экземпляра?
Могу ли я определить __repr__ для класса, а не экземпляра? Например, я пытаюсь сделать это class A(object): @classmethod def __repr__(cls): return 'My class %s' % cls Что я получаю In [58]: a=A() In [59]: a Out[59]: My class <class '__main__.A'&g…
21 янв '12 в 18:58
2
ответа
Groovy метапрограммирование - добавление статических методов в Object.metaClass
Я столкнулся с проблемой метапрограммирования Groovy, которую не могу решить. При добавлении статического метода foo () в класс FooBar, FooBar.foo() работает, как и ожидалось: FooBar.metaClass.static.foo = { println "hello" } FooBar.foo() Однако вме…
22 сен '09 в 22:21
1
ответ
Как получить и использовать тип класса из класса Java, который я динамически создал во время выполнения с использованием ASM?
Я хотел бы расширить класс, получить литерал класса, использовать его в качестве параметра типа или привести к нему. У меня уже есть обходной путь, но мне все еще интересно. В настоящее время я могу определить класс во время выполнения с ASM, создат…
21 апр '13 в 20:53
2
ответа
Установка класса Javascript для каждого атрибута
Я пытаюсь создать класс, который имеет ряд объектов, назначенных в качестве атрибутов. Я застрял на реализации сеттеров на этих атрибутах. Неудачный пример ниже. Когда я делаю record1.foo = 'bar'; // record.foo is now a string Я перезаписываю атрибу…
06 апр '18 в 15:43
3
ответа
Поиск генератора случайных программ на питоне
Я ищу программу, которая может генерировать случайные, но действительные программы на Python, аналогичные Генератор случайных Си программ. Я пытался сделать это сам, давая случайный вклад в питона tokenize.untokenize() функции, но, конечно, большая …
26 фев '11 в 17:44
1
ответ
В чем разница между C++ Concepts и C++ Template Constraints?
Как видно из названия, есть что-то под названием Concepts Lite (шаблонные ограничения) и Concept Design для STL. Кто-нибудь может объяснить некоторые фундаментальные различия между ними?
07 июн '13 в 15:49