- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在编译一段代码时偶然发现了这个错误,我已经使用了很长时间没有出现问题。我在 Linux 上使用 Gfortran 8.2,我怀疑是编译器更新导致了这个问题。
当我定义一个带有可选参数的接口(interface)时,该接口(interface)具有不同数量的非可选参数,Gfortran 会提示该接口(interface)不明确。例如,如果我编译以下内容,我会得到“在 (1) 处的‘testinit1’和在 (2) 处的‘testinit2’的通用接口(interface)‘test’中的模糊接口(interface)”:
module test_mod
implicit none
interface Test
module procedure test1, test2
end interface
contains
function test1(opt) result(rslt)
integer :: rslt
integer, optional :: opt
rslt = 1
end function
function test2(data, opt) result(rslt)
integer :: rslt
integer :: data
integer, optional :: opt
rslt = data
end function
end module
如果我删除可选参数 opt
,那么它可以正常编译。如果我向 test1
添加一个 data
参数,它与 test2
的数据具有不同的等级,那么它编译得很好。如果我向两个函数添加另一个非可选参数,我会收到相同的错误消息。
我偶然发现的实际代码是this file 中的Result
接口(interface)。 ,正如我所说,过去常常按预期进行编译。
感谢任何帮助!
最佳答案
Gfortran complains that the interface is ambiguous
嗯,那是因为界面不明确。下面的调用应该选择哪个过程?
integer :: param
print *, Test(param)
test1
参数 opt
选择加入?或者……test2
参数 data
已通过且 opt
已退出?如果它只是在更新后才开始失败,那可能是一个非常受欢迎的错误修复。
If I remove the optional argument opt, then it compiles fine. If I add a data argument to test1 that has a different rank to test2's data, then it compiles fine.
有道理。如果没有可选参数,这两个函数在参数数量上是完全明确的。改变参数的等级也会导致分化。
If I add another non-optional argument to both functions, I get the same error message.
同样的问题。如果这两个函数都有一个额外的非可选参数并且符合类型-种类-等级,您将如何解决调用?假设新参数是 data_extra
:
print*, Test(param1, param2)
test1
参数 data_extra
已通过且 opt
已选择加入?或者……test2
参数 data
和 data_extra
已通过且 opt
已退出?关于fortran - 在 Gfortran 中使用可选参数时接口(interface)不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53724340/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!