Публикации по теме 'metaprogramming'
Метапрограммирование в JavaScript/TypeScript, часть №2 (декораторы)
Это вторая статья из серии «Метапрограммирование в JavaScript и TypeScript». Настоятельно рекомендуется прочитать и первую часть:
Метапрограммирование JavaScript/TypeScript, часть №1: дескрипторы. Основы метапрограммирования JavaScript/TypeScript. Дескриптор метода и свойства. Использование, примеры и самое простое… medium.com
В этой статье мы поговорим о декораторах и о том, чем они так хороши!!
Декораторы — неотъемлемая часть..
Метапрограммирование массивов в TypeScript
Большинство разработчиков TypeScript легко замечают, что они могут вводить массивы, используя универсальные типы. Вы когда-нибудь задумывались, можно ли вывести тип массива для массива ? Или как получить все элементы массива в зависимости от их типа?
Если вы не знаете, как это сделать, продолжайте читать!
И если вы более продвинутый разработчик TypeScript, я приготовил для вас кое-что стоящее!
Тип массива из массива
Определение типа массива для конкретного массива служит..
Вопросы по теме 'metaprogramming'
Где вы находите полезные шаблоны?
На моем рабочем месте мы обычно используем iostream , строку , вектор , карту и нечетные алгоритм или два. На самом деле мы не обнаружили много ситуаций, когда методы шаблонов были бы лучшим решением проблемы.
Здесь я ищу идеи и, возможно,...
3623 просмотров
schedule
28.03.2022
Обратимая версия 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 просмотров
schedule
02.02.2023
Обнаружение того, что метод не был переопределен
Скажем, у меня есть следующие 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 просмотров
schedule
24.01.2024
Как я могу определить вызывающую сторону моего метода в 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 просмотров
schedule
19.12.2022
Узнайте количество цифр минимального/максимального значения целочисленного типа во время компиляции
Есть ли способ узнать количество цифр минимального/максимального значения целочисленного типа во время компиляции, чтобы его можно было разместить в качестве параметра шаблона?
В идеале будет уже существующее решение, например, в 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