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
仕様は特定の動作を保証しますか?