metaprogramming相关内容

C++ 是否支持编译时计数器?

出于内省的目的,有时我想自动将序列号分配给类型或类似的东西. 不幸的是,模板元编程本质上是一种函数式语言,因此缺乏实现此类计数器的全局变量或可修改状态. 或者是吗? 请求示例代码: #include int const a = counter_read;counter_inc;counter_inc;counter_inc;counter_inc;counter_inc;int ..
发布时间:2021-12-13 18:20:09 C/C++开发

为什么`object`是`type`的实例而`type`是`object`的实例?

我对 Python 3 中的 object 和 type 类有点困惑.也许有人可以解决我的困惑或提供一些额外的信息. 我目前的理解是每个类(object 除外)都继承自一个名为 object 的基类.但是每一个类(包括object)也是type类的一个实例,它是自身和object的一个实例,也继承自对象. 我的问题是: 为什么object 是type 的实例并且type 继承自o ..
发布时间:2021-12-11 19:36:10 Python

使用自定义名称创建 Python 动态函数

如果已经提出并回答了这个问题,我们深表歉意.我需要做的在概念上非常简单,但遗憾的是我一直无法在网上找到答案. 我需要在运行时使用自定义名称在 Python (Python2.7) 中创建动态函数.每个函数的主体也需要在运行时构建,但对于所有函数来说(几乎)相同. 我从一个名字列表开始. func_names = ["func1", "func2", "func3"] 请注意,fun ..
发布时间:2021-12-08 12:30:45 Python

在 C++ 中方便地声明编译时字符串

能够在 C++ 编译时创建和操作字符串有几个有用的应用.尽管可以在 C++ 中创建编译时字符串,但该过程非常繁琐,因为该字符串需要声明为可变字符序列,例如 using str = sequence; 字符串连接、子字符串提取等操作可以轻松实现为对字符序列的操作.是否可以更方便地声明编译时字符串?如果没有,是否有工作中的提案可以方便地声明编译时字符串? 为什么现有方法失败 理想情况下 ..
发布时间:2021-12-05 15:06:01 C/C++开发

Ruby - 打印变量名,然后是它的值

编写允许我用 Ruby 编写此代码的函数(或类似 DSL 的东西)的最佳方法是什么?我将如何构造函数 write_pair? username = "tyndall"write_pair 用户名# 其中 write_pair 用户名输出用户名: tyndall 可以吗?寻找最简单的方法来做到这一点. 解决方案 当然有可能! 我的解决方案通过 Object#object_id 身份 ..
发布时间:2021-12-03 10:06:38 其他开发

Ruby:继承使用类变量的代码

情况:我有多个类,每个类都应该保存一个带有配置哈希的变量;每个类的哈希值不同,但类的所有实例都相同. 起初,我是这样尝试的 A 类def self.init 配置@@config = 配置结尾定义配置@@配置结尾结尾B级<一种;结尾C级<一种;结尾 但很快注意到它不会那样工作,因为@@config 保存在 A 的上下文中,而不是 B 或 C 的上下文中,因此: B.init "bar" ..
发布时间:2021-12-03 09:54:54 其他开发

在 Ruby 中从带有方法名称的字符串中调用方法

我该如何做他们所说的此处,但在 Ruby 中? 您将如何在对象上执行该功能?以及如何执行全局函数(参见 jetxee 的 回答 提到的帖子)? 示例代码: event_name = "加载"定义加载()puts “load() 函数被执行."结尾def row_changed()puts “row_changed() 函数被执行."结尾#something here 看到 event ..
发布时间:2021-12-03 09:51:21 其他开发

为 Ruby 模块中的每个方法调用执行代码

我正在用 Ruby 1.9.2 编写一个模块,它定义了几个方法.当调用这些方法中的任何一个时,我希望它们中的每一个都首先执行某个语句. 模块 MyModuledef go_forth重复使用的语句# 此方法的特定代码如下...结尾def and_multiply重复使用的语句# 然后是完全不同的东西......结尾结尾 但我想避免在每个方法中显式地放置重用语句代码.有什么办法吗? (如果 ..
发布时间:2021-12-03 09:46:43 其他开发

Javascript 有类似 Ruby 的 method_missing 功能吗?

在 Ruby 中,我认为您可以调用尚未定义的方法,但仍可以捕获调用的方法的名称,并在运行时处理此方法. Javascript 可以做同样的事情吗? 解决方案 您正在解释的 ruby​​ 功能称为“method_missing" http://rubylearning.com/satishtalim/ruby_method_missing.htm. 这是一个全新的功能,只存在于某 ..
发布时间:2021-12-03 09:45:16 前端开发

如何根据名称动态调用方法?

当方法名称包含在字符串变量中时,如何动态调用该方法?例如: class MyClassdef foo;结尾定义栏;结尾结尾obj = MyClass.newstr = get_data_from_user # 例如`gets`、`params`、数据库访问等.str#=>“富"# 以某种方式使用 `str` 中的值在 `obj` 上调用 `foo`. 我该怎么做?这样做是否存在安全风险? ..
发布时间:2021-12-03 09:28:24 其他开发

来自对象字段的 Python 字典

你知道有没有内置函数可以从任意对象构建字典?我想做这样的事情: >>>Foo类:... bar = '你好'... baz = '世界'...>>>f = Foo()>>>道具(f){'bar':'你好','baz':'世界'} 注意:它不应包含方法.只有字段. 解决方案 请注意 Python 2.7 中的最佳实践是使用 new-style 类(Python 3 不需要),即 c ..
发布时间:2021-11-30 15:45:21 Python

Java静态元编程

我想实现一个注解处理器,它会根据现有的“原型"类生成新的类. import java.util.List@MyAnnotation类 MySuperClassPrototype {静态 MySuperClassPrototype createInstance() {返回新的 MySuperClassPrototype();}} 由于下面的代码.将生成如下新的源文件(编译单元): import ..
发布时间:2021-11-26 18:00:20 Java开发

在 C++ 编译时以编程方式创建静态数组

可以在编译时定义一个静态数组如下: const std::size_t size = 5;无符号整数列表[大小] = { 1, 2, 3, 4, 5 }; 问题 1 - 是否可以使用各种元编程技术在编译时“以编程方式"分配这些值? 问题 2 - 假设数组中的所有值都相同,是否可以在编译时以编程方式有选择地分配值? 例如: const std::size_t size = 7;无符 ..
发布时间:2021-11-18 01:20:15 C/C++开发

解析,用三点参数替换

让我们考虑一个典型的 deparse(substitute( R call: f1 结果是 [1] "varX" 这是我们期望和想要的. 然后,麻烦来了,我尝试使用 ... 参数获得类似的行为,即 f2 毫不奇怪,这不起作用: f2(u=varU,x=varX,y=varY)[1] "\"vx\"" ### 错了!我想要“varX" 我尝试使用不同的解决方案组合来获得预期 ..
发布时间:2021-11-17 05:39:12 其他开发

如何开发MS CRM类的应用程序

我曾与 MS CRM 合作过.在那里我们可以以图形方式设计我们的自定义实体,然后我们还可以构建一个可视化表单来对该实体执行 CRUD 操作. 从最终用户的角度来看,这感觉非常简单.但是,我很想知道如何开发类似的应用程序,让我可以动态设计表格并动态设计 UI. 我想知道的是他们如何动态地实现所有这些?如果我必须在一张简单的表上创建 CRUD,我需要编写大量代码.MS 如何即时实现一切?任 ..
发布时间:2021-11-17 02:58:44 C#/.NET

Delphi 中的元编程 - 向类的每个方法添加函数调用

我想向应用程序添加一些检测,基本上我想在许多数据模块中的每个方法/事件的第一行添加一个函数调用,代码大致如下. procedure TSomeClass.SomeProcedure;开始ExecutionCounter(ClassName, 'SomeProcedure');//这就是我要插入的内容.//剩下的过程结尾; 我可以对数千种方法手动执行此操作(可能需要几个小时),但我想知道是否有某 ..
发布时间:2021-11-11 04:40:28 其他开发

如何使用 Groovy 拦截 Java 应用程序中所有方法的执行?

是否可以拦截应用程序中调用的所有方法?我想和他们一起做点什么,然后让他们去执行.我试图在 Object.metaClass.invokeMethod 中覆盖此行为,但它似乎不起作用. 这可行吗? 解决方案 你看过Groovy AOP?文档允许您可以在概念上以与 AspectJ 类似的方式定义切入点和通知.看看 单元测试一些更多的例子 下面的示例将匹配所有编织类型的所有调用,并在 ..

Ruby 中的横切日志

我正在尝试从外部向方法添加日志记录(面向方面​​的风格) A 类定义测试把“我在做某事......"结尾结尾A类#带日志!别名方法 :test_orig, :test定义测试放置“日志消息!"test_orig结尾结尾a = A. 新一个测试 以上工作正常,除了如果我需要再次为方法做别名,它会进入无限循环.我想要更像 super 的东西,在那里我可以根据需要扩展它多次,并且每个扩展名都有其父级 ..
发布时间:2021-11-11 04:27:24 其他开发