Результаты поиска по запросу "metaprogramming"
Есть ли хук, похожий на наследуемый Class #, который срабатывает только после определения класса Ruby?
#inherited называется сразу послеclass Foo заявление. Я хочу что-то, что будет работать только послеend утверждение, которое закрывает объявление класса. Вот код для иллюстрации того, что мне нужно: class Class def inherited m puts "In ...
Возможно ли реализовать динамические геттеры / сеттеры в JavaScript?
Я знаю, как создавать методы получения и установки для свойств, имена которых уже известны, делая что-то вроде этого: // A trivial example: function MyObject(val){ this.count = 0; this.value = val; } MyObject.prototype = { get value(){ return ...
Является ли метапрограммирование подмножеством рефлексии?
Раньше я думал, что метапрограммирование включает в себя изменение программы, и (как и некоторые ответы наЧто такое рефлексия и почему она полезна? [https://stackoverflow.com/questions/37628/what-is-reflection-and-why-is-it-useful] ) это ...
Частичная специализация шаблона с ошибкой нескольких аргументов шаблона
Когда я использую частичную специализацию шаблона в классе с одним аргументом шаблона, я могу специализировать метод следующим образом: #include <cstdlib> template< std::size_t Dim > class Test { public: int foo(); }; template< std::size_t Dim > ...
Можно ли выяснить тип параметра и тип возврата лямбда?
Учитывая лямбду, возможно ли выяснить ее тип параметра и тип возвращаемого значения? Если да, то как? В основном я хочуlambda_traits который можно использовать следующими способами: auto lambda = [](int i) { return long(i*10); ...
Найти классы, доступные в модуле
У меня есть модульMyModule, Я динамически загружаю классы в него. Как я могу получить список классов, определенных в его пространстве имен? Пример: def load_plugins Dir.glob(File.dirname(__FILE__) + '/plugins/*.rb') do |f| MyModule.class_eval ...
C ++ 11 аргумент функции constexpr передан в аргументе шаблона
Раньше это работало несколько недель назад: 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; }Но сейчасg++ ...
Преобразовать тип кортежа
Так что я новичок в повышении MPL и не знаю, как использовать его со стандартными типами. Я хочу метафункцию, которая охватывает этот тип: std::tuple<T0, T1, ..., TN>В это: std::tuple< std::function<T0(std::tuple<T0, T1, ...>, std::tuple<T0, ...
Как изменить себя в блоке, как метод instance_eval?
Метод instance_eval меняет себя в своем блоке, например: class D; end d = D.new d.instance_eval do puts self # print something like #<D:0x8a6d9f4>, not 'main'! endЕсли мы определим метод самостоятельно (или любые другие методы (кроме ...
Потокобезопасность: переменные класса в Ruby
Выполнение записи / чтения переменных класса в Ruby не является потокобезопасным. Выполнение записи / чтения переменных экземпляра представляется поточно-ориентированным. Тем не менее, является ли потокобезопасным выполнение записи / чтения ...