------- Comment #5 from damian at rouson dot net  2010-05-04 14:25 -------
(In reply to comment #4)
> What a horrible rule...
> 

I'm not sure why you don't like it, but the reason for the rule is to have the
ability to overload the intrinsic structure constructors.  The intrinsic
structure constructors are virtually useless for object-oriented programming
(OOP) because they can't be used if the type has private data (required by the
information-hiding philosophy of OOP) unless all components have default
initializations (which only helps in trivial cases).  It's standard in C++ (and
I'd guess in most other OOP languages) for constructors to have the same name
as the type.  What could be more clear to the reader than

type(vector) :: f
f = vector(1.0,2.0)

Once one adopts this approach, it touches every type you develop, so a compiler
that doesn't support it becomes useless unless you're willing to change every
constructor name to suit that particular compiler.  It's already supported by
IBM XL Fortran (my primary development platform), by Cray, by NAG (I think),
and Intel has promised to support it in its next release.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39427

Reply via email to