¿Cómo escribir pruebas ejecutables de static_assert?

Estoy escribiendo una unidad de prueba de unidad para una biblioteca de código fuente que contienestatic_asserts. Quiero asegurarles estostatic_assertNo hacen más ni menos de lo que se desea hacer, en términos de diseño. Así que me gustaría poder probarlos.

Por supuesto, podría agregar pruebas de unidad no compilables de la interfaz que causan lastatic assertdebe ser violado por una amplia variedad de medios, y comentar o#if 0 todos ellos, con mi seguridad personal para el usuario de que si alguno de ellos no tiene comentarios, observarán que la biblioteca no se compila.

Pero eso sería bastante ridículo. En su lugar, me gustaría tener algún aparato que, en el contexto del conjunto de pruebas de unidad, reemplace unstatic_assert con una excepción de tiempo de ejecución provocada de manera equivalente, que el marco de prueba podría detectar e informar en efecto: este código tendríastatic_assertEd en una construcción real.

¿Estoy pasando por alto alguna razón deslumbrante por la que esto sería una idea tonta?

Si no, ¿cómo podría hacerse? El aparato macro es un enfoque obvio y no lo descarto. ¿Pero quizás también, y preferiblemente, con una especialización de plantilla o un enfoque de SFINAE?

Respuestas a la pregunta(1)

Su respuesta a la pregunta