公开枚举

Exa*_*ale 3 fortran

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

module mod

    private 

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

end module
Run Code Online (Sandbox Code Playgroud)

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

public :: ENUM1, ENUM2,... !Works
Run Code Online (Sandbox Code Playgroud)

我知道枚举只是整数参数,所以我很好奇是否可以同时为所有这些参数做这件事。

Vla*_*r F 5

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

也没有办法将枚举数public作为一个组放在语句中,您必须列出每个枚举数。

枚举被添加到 Fortran 或多或少只是为了 C 互操作性(注意强制性bind(c)),并不适合语言的其余部分。