On Fri, Oct 04, 2013 at 03:22:59PM +0200, David Herrmann wrote:
> Hi
> 
> On Fri, Oct 4, 2013 at 2:34 PM, Daniel Stone <dan...@fooishbar.org> wrote:
> > On 4 October 2013 13:09, Wander Lairson Costa <wander.lair...@gmail.com> 
> > wrote:
> >> That's what the patch is about: avoid casts. Whenever you use a cast,
> >> you are giving up the help the compiler may give to you regarding
> >> invalid type conversions. So, I always use the rule of thumb of
> >> avoiding casts whenever I can. IMO, this is not a harmful patch and
> >> will make the C++ programmers a little bit easier.
> >
> > I can see where it's going, but on the other hand xkb_mod_mask_t is
> > _so_ not the right type.  That's a bitmask of actual modifiers (i.e.
> > the return value), not a bitmask of components.  So it avoids the
> > cast, but also makes the API look extremely misleading, as we've
> > documented exactly what xkb_mod_mask_t is.
> >
> > I really like the type safety aspect, so to be honest I'm just
> > inclined to make C++ wear the cast for now.
> 
> We had a similar discussion when I pointed out that "enum" may change
> the underlying type without notice when adding new enum-values.

Just adding a note that this problem can be mitigated by adding some
dummy value to the enum to force it to be int-sized. Of course we can't
do it in xkbcommon, but future APIs may want to do this, at least if
they don't find it too ugly.

Ran
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to