制作一个公开的枚举

时间:2014-12-07 08:13:44

标签: fortran

是否可以在默认为私有的模块中公开枚举?

module mod

    private 

    enum, (public,) bind(c) !Doesn't work
         enumerator(, public) :: ENUM1, ENUM2,... !Doesn't work
    end enum

end module

我希望默认情况下保持模块数据的私有性,但希望枚举是公开的,而不必像这样单独列出:

public :: ENUM1, ENUM2,... !Works

我知道枚举只是整数参数,所以我很好奇是否可以同时对所有这些参数进行。

1 个答案:

答案 0 :(得分:4)

您尝试执行的操作不符合Fortran 2008 4.6.1中的语法规则,因此,无法在枚举定义中插入公共属性。

也无法将public语句中的枚举数作为一个组排列,您必须列出每个枚举数。

枚举只是为了C互操作性而添加到Fortran中(注意强制性bind(c))并且不适合其他语言。