Warum ist der Vergleich zweier Parameter einer Constexpr-Funktion keine konstante Bedingung für die statische Behauptung?

constexpr uint32_t BitPositionToMask(int i,int Size){
static_assert(i < Size,"bit position out of range");
return 1 << i;
}

das erzeugt:

error: non-constant condition for static assertion

on GCC 4.6.2 Bekomme ich nichts oder ist das ein GCC-Fehler?

Aktualisieren: danke Andy, dass du wieder mein Nerd-Schutzengel bist. Da ich die Werte zur Kompilierungszeit habe, habe ich sie nur zu einer Vorlage gemacht und sie funktioniert wie vorgesehen.

template<int i,int Size>
constexpr uint32_t BitPositionToMask(){
    static_assert(i < Size,"bit position out of range");
    return 1 << i;
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage