在处理optional
论点时,fortran
我认为使用present()
内在函数进行分支是典型的,即:
subroutine foo(ii,jj)
implicit none
integer, intent(in) :: ii
integer, optional :: jj
if (present(jj)) then
! do something
else
! do something else
end if
end subroutine foo
我的假设(来自一个C++
世界)是present()
希望是一个编译时构造,并且不会有任何相关的运行时性能损失。我希望编译器应该能够(应该被要求?)优化if
上面显示的语句,具体取决于是否foo(ii)
被foo(ii,jj)
调用。
编译器在实践中如何present()
处理内在函数?规范是否fortran
保证某些行为?