我试图理解抽象接口和"普通"接口之间的区别.什么使界面抽象?什么时候需要?
假设下面的例子
module abstract_type_mod
implicit none
type, abstract :: abstract_t
contains
procedure(abstract_foo), pass, deferred :: Foo
end type
interface
subroutine abstract_foo ( this, a, b )
import :: abstract_t
implicit none
class(abstract_t), intent(in) :: this
real, intent(in) :: a
real, intent(out) :: b
end subroutine
end interface
end module
module concrete_type_mod
use abstract_type_mod
implicit none
type, extends ( abstract_t ) :: concrete_t
contains
procedure, pass :: Foo
end type
contains
subroutine Foo ( this, a, b )
implicit none
class(concrete_t), …Run Code Online (Sandbox Code Playgroud) 这是我的另一个问题的后续。
我想知道带有归约操作的并行循环(例如并行集成)是否属于 C++11 线程的适用范围,或者 OpenMP 是否最适合此类任务。
现在,考虑相同的设置,但线程执行可能引发异常的计算。它会改变场景吗?现在 C++11 线程最适合吗?
谢谢。
我想用自动执行某些输出printf的,但我在努力寻找一种方法来传递给它的参数列表expr_1, ..., expr_n中
printf (dest, string, expr_1, ..., expr_n)
Run Code Online (Sandbox Code Playgroud)
我想过使用类似Javascript的spread 运算符,但我甚至不确定我是否需要它.
对于instace,说我有一个要输出的字符串列表
a:["foo","bar","foobar"];
Run Code Online (Sandbox Code Playgroud)
比如说,一串适当的格式描述符
s: "~a ~a ~a ~%";
Run Code Online (Sandbox Code Playgroud)
和输出流,比方说os.如何printf以这样的方式调用这些东西,使得结果与写入相同
printf(os,s,a[1],a[2],a[3]);
Run Code Online (Sandbox Code Playgroud)
然后我可以将它概括为输出可变大小的列表.
有什么建议?
谢谢.
编辑:
我刚学会了,apply并且使用我在OP中提出的条件,以下似乎非常有用:
apply(printf,append([os,s],a));
Run Code Online (Sandbox Code Playgroud) 经过一番挣扎之后,我写下了以下模式规则
%.o : $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90)))
$(COMPILE) $(addprefix $(SRCDIR),$(notdir $(@:.o=.f90))) -o $@
Run Code Online (Sandbox Code Playgroud)
SRCDIR是找到相应源代码文件的位置。目标文件和源代码文件位于单独的目录中,并且目标文件名包含其路径。因此,对于每个目标文件,源代码文件名都是通过文本替换获得的,并以开头SRCDIR。
我怎样才能更简洁地做到这一点?
谢谢。