Littéral numérique erreur de l'opérateur

Pourquoi ce code:

constexpr float operator "" _deg(long double d) {
    //returns radians
    return d*3.1415926535/180;
}

static const float ANGLES[] = { -20_deg, -10_deg, 0_deg, 10_deg, 20_deg};

Produire 5 de ces erreurs:

erreur: impossible de trouver le littéral numérique de l'opérateur d'opérateur"" _deg'

Je suis en utilisant GCC 4.7.3. (arm-none-eabi-g++, avec la -std=c++0x drapeau).

Quel compilateur et version utilisez-vous?
Mais il échoue sur ideone trop
Ce version du compilateur? défini par l'Utilisateur littéraux n'est pas correctement mis en œuvre jusqu'à ce que gcc 4.7. ideone est à l'aide de gcc 4.5

OriginalL'auteur Eric | 2013-01-16