dukjuahn at gmail.com
Sun Jul 29 11:50:53 UTC 2007
> > > > But why is the #define too bad?
> > >
> > > Because they are unneeded and IMHO its just the wrong tool for the job.
> > > enum is a far better tool.
> > It's needed for uniformity. Suppose that in somewhere we use
> > VcsJob::Add and in other place we use SvnJob::Info. They are different
> > type. So I can't, at lease, use VcsJob enums directly.
> > I need to redefine every enums in a single type.
> AFAIK you can extend the existing VcsJob enum, but I currently am not
> 100% sure how... There may be an example in Qt...
> > > > It doesn't do any harm as far as the values are defined correctly.
> > > > What is the benefit if I redefine everything into enum values such as
> > > > SvnJob::commit ..?
> > >
> > > For example: proper typing and type checking by the compiler, not
> > > polluting the global namespace because the enum values would be
> > > "namespaced" by the class name in which they are defined.
> > In point of syntax it is true. But I'm not clear why it should be
> > confined to namespace. Also, the type is regarded just "int". Then
> > there is no problem is typechecking.
> Yes there is a problem: You're loosing proper type checking because then
> you can use any int, wether its a properly understood value or not,
> thats the reason to use the enum type instead of the int. If you use the
> enum value the compiler will choke if you pass a non-enum value in.
Well, thanks. I think I need to define new enums for subversion later.
More information about the KDevelop-devel