Como escrever testes executáveis ​​de static_assert?

Eu estou escrevendo um conjunto de teste de unidade para uma biblioteca de código fonte que contémstatic_asserts. Eu quero fornecer garantia estesstatic_assertNão faça mais nem menos do que se deseja fazer, em termos de design. Então eu gostaria de poder testá-los.

Eu poderia, claro, adicionar testes de unidade não-compensáveis ​​da interface que causamstatic asserts ser violada por uma variedade abrangente de meios, e comentar ou#if 0 todos eles fora, com minha garantia pessoal para o usuário de que, se algum deles não for comentado, eles observarão que a biblioteca não compila.

Mas isso seria bastante ridículo. Em vez disso, eu gostaria de ter algum aparato que, no contexto do conjunto de testes unitários, substituíssestatic_assert com uma exceção de tempo de execução provida equivalentemente, que a estrutura de teste poderia capturar e relatar em vigor: Esse código teriastatic_asserted em uma construção real.

Eu estou negligenciando alguma razão gritante por que isso seria uma idéia idiota?

Se não, como isso pode ser feito? Aparelho de macro é uma abordagem óbvia e não descarto isso. Mas talvez também, e de preferência, com uma especialização de modelo ou abordagem SFINAE?

questionAnswers(1)

yourAnswerToTheQuestion