Публикации по теме 'metaprogramming'


Метапрограммирование в JavaScript/TypeScript, часть №2 (декораторы)
Это вторая статья из серии «Метапрограммирование в JavaScript и TypeScript». Настоятельно рекомендуется прочитать и первую часть: Метапрограммирование JavaScript/TypeScript, часть №1: дескрипторы. Основы метапрограммирования JavaScript/TypeScript. Дескриптор метода и свойства. Использование, примеры и самое простое… medium.com В этой статье мы поговорим о декораторах и о том, чем они так хороши!! Декораторы — неотъемлемая часть..

Метапрограммирование массивов в TypeScript
Большинство разработчиков TypeScript легко замечают, что они могут вводить массивы, используя универсальные типы. Вы когда-нибудь задумывались, можно ли вывести тип массива для массива ? Или как получить все элементы массива в зависимости от их типа? Если вы не знаете, как это сделать, продолжайте читать! И если вы более продвинутый разработчик TypeScript, я приготовил для вас кое-что стоящее! Тип массива из массива Определение типа массива для конкретного массива служит..

Вопросы по теме 'metaprogramming'

Где вы находите полезные шаблоны?
На моем рабочем месте мы обычно используем iostream , строку , вектор , карту и нечетные алгоритм или два. На самом деле мы не обнаружили много ситуаций, когда методы шаблонов были бы лучшим решением проблемы. Здесь я ищу идеи и, возможно,...
3623 просмотров

Обратимая версия compile() в Python
Я пытаюсь создать функцию на Python, которая делает эквивалент compile(), но также позволяет мне вернуть исходную строку. Давайте назовем эти две функции comp() и decomp() для устранения неоднозначности. То есть, a = comp("2 * (3 + x)", "",...
299 просмотров
schedule 21.09.2022

Онлайн-руководство по метапрограммированию Ruby
Я только начал изучать Ruby и хорошо разобрался с основами. Я постоянно слышу, что одна из замечательных вещей, которые Ruby делает очень хорошо, — это метапрограммирование, но ни одно из руководств, которые я читал, не освещает это. В поиске в...
18318 просмотров
schedule 25.01.2023

Как узнать арность метода в Python
Я бы хотел узнать арность метода в Python (количество получаемых им параметров). Прямо сейчас делаю вот что: def arity(obj, method): return getattr(obj.__class__, method).func_code.co_argcount - 1 # remove self class Foo: def bar(self,...
8889 просмотров
schedule 29.07.2022

Перечислить по перечислению в C ++
В C ++ можно ли перечислить перечисление (во время выполнения или во время компиляции (предпочтительно)) и вызывать функции / генерировать код для каждой итерации? Пример использования: enum abc { start a, b, c, end }...
25805 просмотров
schedule 08.06.2023

ruby метапрограммирование - блок yield не работает в динамически добавляемом методе
Я работаю над расширением структуры NotAMock для заглушек методов в rspec и получения заглушек перейти к блоку методов. код в этом Gist отлично работает, когда я пишу его самостоятельно (который сделан так, чтобы напоминать методы-заглушки...
348 просмотров
schedule 14.06.2022

Как вызвать конструктор не по умолчанию для каждого унаследованного типа из списка типов?
Я использую список типов Boost для реализации шаблона политики следующим образом. using namespace boost::mpl; template <typename PolicyTypeList = boost::mpl::vector<> > class Host : public inherit_linearly<PolicyTypeList,...
1063 просмотров

Обнаружение того, что метод не был переопределен
Скажем, у меня есть следующие 2 класса: class A def a_method end end class B < A end Можно ли обнаружить изнутри (экземпляра) класса B, что метод a_method только определен в суперклассе, поэтому не переопределяется в B?...
560 просмотров
schedule 30.04.2023

Использование groovy metaClass для имитации Shiro SecurityUtils в начальной загрузке
Дополнительную информацию см. На странице http://grails.markmail.org/message/62w2xpbgneapmhpd . Я пытаюсь высмеять метод Shiro SecurityUtils.getSubject () в моем BootStrap.groovy. Я выбрал этот подход, потому что построитель предметов в последней...
1574 просмотров

Как я могу определить вызывающую сторону моего метода в Objective-C?
Итак, у меня есть довольно сложное приложение, которое я, возможно, по наивности согласился «отладить». При входе в определенный метод я хотел бы распечатать как можно больше информации о том, кто вызвал метод, из какого класса, метода и т. д. он был...
5582 просмотров
schedule 24.05.2022

Создание модуля вспомогательной функции
Я пишу DSL для создания парсеров для плоских файлов биоинформатики. Я хотел бы позволить пользователю определять вспомогательные функции в блоке, а затем включать функцию в объект контекста синтаксического анализа. Я хотел бы использовать такой...
102 просмотров
schedule 03.09.2022

Действительно ли при вызове конструктора пустого класса используется какая-либо память?
Предположим, у меня есть класс вроде class Empty{ Empty(int a){ cout << a; } } И затем я вызываю его, используя int main(){ Empty(2); return 0; } Приведет ли это к тому, что в стеке будет выделена какая-либо память...
1964 просмотров

Узнайте количество цифр минимального/максимального значения целочисленного типа во время компиляции
Есть ли способ узнать количество цифр минимального/максимального значения целочисленного типа во время компиляции, чтобы его можно было разместить в качестве параметра шаблона? В идеале будет уже существующее решение, например, в Boost MPL. В...
289 просмотров
schedule 06.01.2023

Есть ли хороший шаблон для создания уникального идентификатора на основе типа?
У меня есть шаблон, который создает уникальный идентификатор для каждого экземпляра типа. Вот упрощенная версия шаблона: template <typename T> class arType { static const arType Id; // this will be unique for every instantiation of...
1011 просмотров
schedule 28.06.2022

Как я могу написать шаблон функции для всех типов с определенной чертой типа?
Рассмотрим следующий пример: struct Scanner { template <typename T> T get(); }; template <> string Scanner::get() { return string("string"); } template <> int Scanner::get() { return 10; } int main() {...
826 просмотров
schedule 04.07.2022

Повторно включить модуль
Мне нужны вот такие: module One def test; puts 'Test One'; end end module Two def test; puts 'Test Two'; end end class Foo include One include Two include One end В этом случае мне нужен результат «Test One», но, очевидно, он...
546 просмотров
schedule 17.08.2022

Встраивание (вид) функций во время выполнения в C
Я думал о типичной проблеме, которая очень JIT-способна, но трудно решить с помощью необработанного C. Сценарий устанавливает ряд указателей на функции, которые будут «составлены» (как в математической композиции функций) один раз во время выполнения....
259 просмотров
schedule 15.12.2022

Метод создания методов: простое метапрограммирование Ruby
У меня есть куча таких методов в представлении помощника def background "#e9eaec" end def footer_link_color "#836448" end Я бы хотел, чтобы эти методы отображались в представлении, но я бы предпочел, чтобы помощник был немного...
530 просмотров
schedule 25.08.2022

alias_method и class_methods не смешиваются?
Я пытался возиться с глобальным модулем Cache, но не могу понять, почему это не работает. У кого-нибудь есть предложения? Это ошибка: NameError: undefined method `get' for module `Cache' from (irb):21:in `alias_method' ......
5993 просмотров
schedule 25.04.2022

Как использовать class_eval?
Я не понимаю class_eval . class Module def attr_ (*syms) syms.each do |sym| class_eval %{def #{sym}= (val) @#{sym} = val end} end end end Что означает % ? Что делает class_eval ? А откуда (val) ?
10700 просмотров
schedule 09.01.2023