metaprogramming相关内容

如何在 JavaScript 中模拟宏?

我知道 JavaScript 不支持宏(Lisp 风格的),但我想知道是否有人有解决方案来模拟宏?我用谷歌搜索了一下,其中一种解决方案建议使用 eval(),但正如他所说,成本会很高. 他们真的不必很花哨.我只想和他们做一些简单的事情.而且它不应该使调试变得更加困难:) 解决方案 你可以使用 parenscript.这将为您提供 Javascript 的宏. ..
发布时间:2022-01-11 19:33:03 前端开发

Rust 宏中的 tt 元变量类型是什么意思?

我正在阅读一本关于 Rust 的书,并开始使用 Rust 宏.除了最后一个 - tt 之外,所有元变量类型都在此处进行了解释并提供了示例.根据这本书,它是一个“单一的令牌树".我很好奇,它是什么,它是用来做什么的?可以举个例子吗? 解决方案 引入这个概念是为了确保宏调用中的任何内容都正确匹配 (), [] 和 {} 对.tt 将匹配任何单个标记或任何一对括号/括号/大括号与其内容. ..
发布时间:2022-01-11 19:29:21 其他开发

从迭代器中获取 const_iterator

是否有将 iterator 映射到其对应的 const_iterator 的元函数 f? 即f::iterator>::type 应该产生 std::vector::const_iterator. 解决方案 我不知道有这样的元函数. 并非所有迭代器都有对应的 const_iterator.例如.插入迭代器.所以这样的元函数需要决定在这种情况下它会做什么. ..
发布时间:2022-01-10 14:58:04 C/C++开发

从 C++ (STL) 中的(它的)迭代器类型获取容器类型

给定一个容器来获取相关的迭代器很容易,例如: std::vector::iterator i;//到 std::vector 的迭代器 我想知道是否有可能,给定一个迭代器类型,推导出“对应容器"的类型(这里我假设每个容器只有一个(非常量)迭代器). 更准确地说,我想要一个适用于所有 STL 容器的模板元函数(无需为每个容器手动专门化它),例如: ContainerOf 评估为 st ..
发布时间:2022-01-07 11:39:38 C/C++开发

Grails/Groovy - 域对象 - 其属性映射

我如何才能获得我的一个域对象上仅用户定义属性的键/值的映射? 问题是如果我自己做这件事,我会得到我的属性加上类、元类、约束、闭包等...... 我认为 Grails 可以很容易地做到这一点,因为它是在脚手架代码的某个级别完成的,对吗?我自己怎么做? 解决方案 试试这个 class Person{字符串名称字符串地址}def 过滤 = ['class', 'active', ' ..
发布时间:2022-01-04 14:23:07 其他开发

如何遍历 Rails 应用程序中的所有模型?

我希望能够迭代并检查我的 rails 应用程序中的所有模型.在伪代码中,它看起来像: rails_env.models.each 做 |model|关联 = model.reflect_on_all_associations(:has_many)……做点事结尾 我的问题是如何检查我的 rails 应用程序以获取模型的集合 (rails_env.models)? 解决方案 类似于 nat ..
发布时间:2022-01-02 09:36:25 其他开发

在 ruby​​ 模型中调用方法之前

这是我在模型中的所有方法之前开发运行代码的方法 调用“before_hook :months_used"方法需要在类的底部,ExecutionHooks 可以获取模块中加载的instance_method.我想在顶部加载实例方法 class BalanceChart 解决方案 您可以使用 prepend.prepend 就像 include 一样,它向类的祖先添加一个模块,但不是在类 ..
发布时间:2022-01-02 09:12:32 其他开发

Pony (ORM) 的技巧是什么?

Pony ORM 在将生成器表达式转换为 SQL 方面做得很好.示例: >>>select(p for p in Person if p.name.startswith('Paul')).order_by(Person.name)[:2]选择“p".“id"、“p".“姓名"、“p".“年龄"来自“人"“p"WHERE “p".“name"喜欢“保罗%"ORDER BY “p".“name"限制 ..
发布时间:2022-01-01 18:00:39 Python

动态更新 ModelForm 的 Meta 类

我希望从我的角度动态更新 ModelForm 的内联 Meta 类.尽管此代码似乎更新了 Meta 类中的排除列表,但 as_p()、as_ul() 等的输出并未反映更新后的 Meta 排除. 我假设 html 是在创建 ModelForm 时生成的,而不是在调用 as_*() 时生成的.有没有办法强制更新 HTML? 这是最好的方法吗?我只是假设这应该工作. 想法? from d ..
发布时间:2022-01-01 12:57:54 Python

错误:类模板已经定义

我有这个小模板类: 命名空间示例{模板类LinkedInList{上市:LinkedInList(){活动 = 假;}~LinkedInList(){}LinkedClass* getNext() const{接下来返回;}void setNext(LinkedClass* const next_){下一个 = 下一个_;}void setActive(布尔状态){活动 = 状态;}bool i ..
发布时间:2021-12-31 23:04:11 C/C++开发

具有多个模板参数错误的模板部分特化

当我在一个带有一个模板参数的类上使用模板部分特化时,我可以特化这样的方法: #include 模板wTest1;wTest2.foo();wTest1.foo();返回0;} 方法 foo 专门用于 Dim = 1.但是一旦我向我的类添加模板参数,就像这样: #include 模板课堂测试{上市:int foo();};模板内联 int 测试内联 int 测试 编译器(VS2010)抱怨这 ..

使用代理对象时如何将参数捕获到目标方法?

我正在尝试使用 Javascript 代理 对象 来捕获传递给我正在代理的目标的“方法"的参数. 请考虑这个例子: var test = {做某事:函数(){控制台日志(参数.长度);}};var testProxy = 新代理(测试,{获取:函数(目标,属性,接收器){//当我想访问任何参数时//这里访问的属性是一个函数//被调用的返回目标[属性];}});testProxy.doSom ..
发布时间:2021-12-31 19:40:39 前端开发

SQLAlchemy 中的动态类创建

我们需要创建 SQLAlchemy 类来访问多个外部数据源,这些数据源的数量会随着时间的推移而增加.我们为核心 ORM 模型使用声明性基础,我知道我们可以使用 autoload=True 手动指定新的 ORM 类来自动生成映射. 问题是我们需要能够动态生成它们,如下所示: from sqlalchemy.ext.declarative import declarative_baseBase ..
发布时间:2021-12-30 14:24:28 Python

在 C++ 中枚举枚举

在 C++ 中,是否可以枚举枚举(运行时或编译时(首选))并为每次迭代调用函数/生成代码? 示例用例: enum abc{开始一个,乙,C,结尾}对于每个(abc 中的 __enum__member__){function_call(__enum__member__);} 似是而非的重复: C++:遍历枚举 C++ 中的 Enum 就像 Ada 中的 Enum? 解决方案 ..
发布时间:2021-12-29 16:12:57 C/C++开发

获取包含模块的类列表

我有一个 mixin,我想获取包含它的所有类的列表.在mixin模块中,我做了以下事情: 模块 MyModuledef self.included(base)@classes ||= []@classes 效果很好: >MyModule.classes #=>零>MyClass.new #=>#>MyModule.classes #=>[“我的课"] 现在,我想将 ..
发布时间:2021-12-29 14:19:10 其他开发

将现有类添加到模块中

我在 app/classes 文件夹中有一些现有的 ruby​​ 类: A 类...结尾B级...结尾 我想将这些类分组到模块 MyModule 中 我知道我可以这样做: 模块 MyModuleA级...结尾B级...结尾结尾 但是有没有一个元编程快捷方式可以做同样的事情,所以我可以“导入"所有现有的类? 谢谢,吕克 解决方案 使用 const_missing 钩子.如 ..
发布时间:2021-12-29 14:16:52 其他开发

Petri网绘制和代码生成

是否有任何软件可以绘制 Petri 网并从中生成任何源代码?源代码可以是任何已知的编程语言... 不太理想的选择是以某种开放格式(如 XML 或任何其他数据语言)输出仅包含 Petri 网图描述的基于文本的文件中的文件.然后我可以自己编写代码生成器,但至少我想避免 gui/graph 开发部分 ;)) 谢谢 解决方案 我正在开发 y_petri 在 Ruby 中.目前,YPet ..
发布时间:2021-12-29 13:15:42 其他开发

编译时字符串散列

我在几个不同的地方读到,使用 C++11 的新字符串文字可能可以在编译时计算字符串的哈希值.然而,似乎没有人准备好站出来说这将是可能的或将如何完成. 这可能吗? 操作员会是什么样子? 我对这样的用例特别感兴趣. void foo( const std::string& value ){开关( std::hash(value) ){case "one"_hash: one();休息; ..
发布时间:2021-12-27 16:04:01 C/C++开发