Los campos de bits no son compatibles con el lenguaje OpenCL. ¿Cuál fue la razón para no apoyarlos? A diferencia de otras piezas omitidas (recursividad, punteros a funciones, ...), donde hay una razón obvia para no darles soporte, no veo uno para bitfields. Estoy seguro de que no es un descuido en nombre del comité, pero ¿cuál es el motivo?¿Por qué no se permiten bitfields en OpenCL?
(Guardo algunos bits empaquetados en ints, y el código sería más agradable de leer con ellos. Entiendo los campos de bits como una buena sintaxis para evitar el cambio de bits y el enmascaramiento de ida y vuelta, que es lo que traducen al ensamblar de todos modos .)
Es importante recordar que OpenCL permite cosas como un host little-endian y un dispositivo big-endian. Permitir campos de bits solo serviría para complicar aún más el soporte de endios mixtos. – user57368
No es portátil ... el argumento de que funciona solo con el mismo endianness es débil. Muchos códigos OpenCL (incluidos los míos) se escribirán para un hardware específico. El programador debería saber mejor qué usar y qué no. (Tengo un código para acceder a grupos de bits dentro de un int; sería mucho más fácil con bitfields: - |) – eudoxos