Nein, gibt es nicht.
Das ist jedoch nicht so wichtig, weil static_assert
zur Kompilierzeit ausgewertet werden, und im Falle eines Fehlers wird der Compiler nicht nur die Nachricht selbst ausdrucken, sondern auch den Instanziierungsstapel (im Falle von Vorlagen).
Sehen Sie sich dieses synthetische Beispiel in ideone an:
%Vor%Der Compiler gibt nicht nur die Diagnose aus, sondern gibt auch den vollen Stack aus:
%Vor%Wenn Sie Python oder Java kennen und wie sie den Stack im Ausnahmefall drucken, sollte Ihnen das vertraut sein. In der Tat, es ist sogar noch besser, weil Sie nicht nur den Call-Stack bekommen, sondern Sie erhalten auch die Argumente Werte (Typen hier)!
Daher sind dynamische Nachrichten nicht so notwendig:)
Der Standard gibt das zweite Argument von static_assert
als Zeichenfolgenliteral an, also keine Möglichkeit für Berechnungen, soweit ich das sehe (außer für Präprozessor-Makros).
Ein Compiler könnte den Standard erweitern und const-Ausdrücke eines geeigneten Typs an dieser Position zulassen, aber ich habe keine Ahnung, ob ein Compiler das tut.
Tags und Links c++ c++11 static-assert