C ++ Error del vinculador con la clase static constexpr

Estoy compilando el siguiente programa simple cong++-4.6.1 --std=c++0x:

#include <algorithm>

struct S
{
    static constexpr int X = 10;
};

int main()
{
    return std::min(S::X, 0);
};

Me sale el siguiente error de enlazador:

/tmp/ccBj7UBt.o: In function `main':
scratch.cpp:(.text+0x17): undefined reference to `S::X'
collect2: ld returned 1 exit status

Me doy cuenta de que los miembros estáticos definidos en línea no tienen símbolos definidos, pero tenía la impresión (probablemente defectuosa) de que usarconstexpr le dijo al compilador que siempre tratara el símbolo como una expresión; entonces, el compilador sabría que no es legal pasar una referencia al símboloS::X (por la misma razón no puede tomar una referencia al literal10).

Sin embargo, si S se declara como espacio de nombres, es decir, "espacio de nombres S" en lugar de "estructura S", todo se vincula bien.

Esto es ung++ error o ¿todavía tengo que usar un truco para solucionar esta molestia?

Respuestas a la pregunta(12)

Su respuesta a la pregunta