问题标签 [function-signature]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
160 浏览

php - “函数($arg = 0)”和“函数($arg)”之间的区别

问题

在 PHP 官方文档中,我在某处发现了这样的声明:

像这样:

两者之间有什么区别,$options论点?

我确定第二个$options参数设置为0(当我没有指定它时)。但是第一个呢?不是说该方法有 2 个强制参数吗?(那么方括号是干什么用的?)。

例子

我试图覆盖这个:

(从schemaValidate() PHP 文档中粘贴的指纹)

但是如果我声明第二个参数$flags,那么我会得到一个

SchemaValidate() 应该与 DOMDocument::schemaValidate($filename) 兼容

如果我删除$flags一切正常的声明(就像我在< PHP 5.5.2中一样)

当我运行PHP 5.5.9并从PHP 5.5.2$flags引入schemaValidate()构造函数时,为什么会出现不兼容的问题?

当我想覆盖本机方法时,我不知道PHP 文档是否可信,或者我是否应该在其他地方检查正确的函数指纹。

我试图查看源代码,但该函数只是C函数的别名。

0 投票
2 回答
202 浏览

c++ - 用指向部分专用函数成员的指针自动填充向量

我正在研究类似管道的设计模式。我的设计目标之一是通过提供指向某个数据类的函数成员的指针来启用管道段的动态链接。

每个数据类都有一组使用整数模板参数索引的函数成员(代表数据类输出端口)。这些函数使用关键字动态推断返回类型auto,但都接受相同的整数参数c_Idx,即template <int N> auto getOutput(int c_Idx) const。与每个功能相关的功能getOutput是(由用户)在一组部分专用的结构中定义的getOutputImpl。因此,每个数据类可以具有从 1 个到某个固定数量K的输出数据端口。

为了允许以通用方式在管道段之间进行动态链接,可以将它们存储在 类型的容器中std::vector<boost::any>。但是,我需要能够用指向函数成员模板的指针自动填充这个向量。

手动实现的示例如下所示

上面例子的问题是我pOutFunX手动定义了成员函数指针,而我想自动化这个过程。

请注意,我不考虑与上述设计有显着差异的设计解决方案。


在这里,我提出了一些关于解决这个问题的可能方法的一些想法。我为我目前正在考虑的解决方案制定了一个计划,如果您尝试回答这个问题,这可能会有用:

  1. 获取名为 的用户定义的部分专用结构的数量getOutputImpl
  2. 对于每个这样的结构,确定其名为 的成员的输出类型apply
  3. 设置一个(递归)元模板过程,该过程创建指向具有相关签名的函数的指针并将它们添加到OutputPort向量中。

我假设上面的步骤 1-3 都必须在编译时完成。如果不需要用户设计数据输出类的任何干预,我不关心解决方案的美观性。但是,我不希望使用自定义编译器宏。

这篇文章展示了如何推断成员函数签名,这可能很有用。

0 投票
2 回答
102 浏览

c++ - 为什么这些 C++ 案例实例化不同的模板

我正在尝试编写一些需要保存不同函数并稍后提取其参数类型的功能。所以我使用函数签名作为模板参数。但我得到了一些意想不到的结果。这是代码:

因此,如果变量someFoo是一个类型为 的函数void(void),它会实例化第一个模板foo<T>. 但是,如果我将其更改为void(int),那么我将获得所需的专用模板实例化。这是为什么?

0 投票
2 回答
446 浏览

python - 检查扩展模块中是否定义了类对象

给定 Python 中的类对象,我如何确定该类是否在扩展模块(例如 c、c++、cython)中定义,而不是在标准 Python 中定义?

inspect.isbuiltin返回扩展模块中定义的函数和TruepythonFalse定义的函数,但不幸的是,它对类没有相同的行为——它对False两种类都返回。

(这里更大的目标是我们有一个系统,它基于解析文档字符串和__init__函数签名为一组类生成命令行 API。这个系统对于 cythoninspect.getargspec中定义的类失败,因为在这些类,所以我试图找出解决方法)

0 投票
1 回答
855 浏览

c++ - C++ 函数指针作为模板参数

我对下面的代码片段有疑问,不确定我是否正确理解了这些代码。

  1. <R(*)(Args...)>是“函数指针的类型”,R 和 (*) 之间的闪烁空间不是必需的吗?

  2. RunnableAdapter 的实例可能是什么?我假设它如下所示。
    void myFunction(int i){ // }; RunnableAdfapter<(void)(*)(int)> ra(MyFunction); ra.Run(1); //which calls MyFunction(1)

0 投票
1 回答
117 浏览

c++ - 省略模板参数(用于函数指针参数)

我正在编写存储函数指针以创建用户对象的模板工厂。
我想支持带参数和不带参数的用户创建函数(现在,一个或零个参数就可以了)。(不幸的是,我不能使用 boost 或 c11 )

如果用户可以像这样使用它,我会喜欢它:

我确实设法让它与一些丑陋的模板专业化一起工作。我觉得我走错路了。

我的解决方案:

如果您愿意,请随时批评其他任何事情

0 投票
3 回答
2200 浏览

python - 将python元组放在函数签名中

在 python 中有一个有趣且非常有用的工具,您可以通过它对函数签名上的元组中的值进行模式匹配。

我没有看到任何关于使用它的文献。python 社区为此使用的词汇是什么?有没有令人信服的理由不使用它?

0 投票
2 回答
3295 浏览

python - 有什么方法可以从 cli 中为 python 中的函数找到所有可能的 kwargs?

有没有办法从命令行发现 python 中函数的潜在关键字参数?无需查看源代码或文档。有时源是c lib,即使它不可见

0 投票
1 回答
601 浏览

c++ - 用于获取函数签名的 c++ 正则表达式

我正在尝试使用 c++ 中的 regex_search 搜索函数签名。这是我正在使用的

在上面的代码中,'xmlFileLine' 是来自 getline 的字符串,它读取输入文件的每一行。例如,我要匹配的字符串是“int Testo::Fact(int n) {”

当我在 try 中执行上面的 regex 并拥有所有 regex_error 标志,如 paren、complexity 等......在 catch 中,我知道它是 regex_paren 抛出的。我不知道如何解决它。

请帮我解决这个问题。

0 投票
2 回答
147 浏览

visual-studio - 用于类型和函数签名的 MonoDevelop F# 工具提示;他们存在吗?

尝试在 Linux 上使用 MonoDevelop (F#),如果没有在 VS 中使用的工具提示(类型/函数签名),这是非常痛苦的。MonoDevelop 中是否提供此功能?假设最新版本。