Tengo un código de serialización de bajo nivel con plantilla, y necesito conocer el endianness del sistema en tiempo de compilación, obviamente (porque las plantillas se especializan en función del endianness del sistema).¿Hay alguna forma de hacer una aserción en tiempo de compilación del estilo de C++ para determinar el endianness de la máquina?
Ahora tengo un encabezado con algunas definiciones de plataforma, pero prefiero tener alguna forma de hacer aserciones sobre endianness con alguna prueba de plantilla (como un static_assert o boost_if). La razón por la cual mi código tendrá que compilarse y ejecutarse en una amplia gama de máquinas, de muchos proveedores especializados y, probablemente, de dispositivos que no existen en 2008, por lo que no puedo adivinar qué podría necesitar ese año por el camino. Y dado que la base de código tiene una vida útil esperada de aproximadamente 10 años. Entonces no puedo seguir el código para siempre.
Espero que esto aclare mi situación.
¿Alguien sabe de una prueba en tiempo de compilación que puede determinar la endianidad, sin depender de las definiciones específicas del proveedor?
Gracias, eso es un buen truco. Y creo que puedo aplicarlo con un poco de reingeniería. no estoy seguro todavía, pero es una buena pista. –