我在以下示例中定义了一个带有私有组件的结构:
module mtypes
implicit none
type mytype
integer, private :: nr
end type
end module mtypes
program main
use mtypes
type(mytype) :: t1
t1 = mytype(1)
print *, t1
end program main
以 1 作为参数调用结构构造函数。据我了解,这应该是不可能的,因为nr
是私人的。但是,这是由 编译的Intel(R) Visual Fortran Compiler XE 14.0.5.239 [IA-32]
,而不是gfortran 4.9.3
using编译的cygwin
。此外,该print
语句显示nr
输出中的值。Fortran
使用最新标准以这种方式定义具有私有组件的结构是否有效?或者这是英特尔编译器的错误?