One would think that this simple piece of code should compile easily:
#include <utility> struct Q { static const int X = 0; }; int main() { std::pair<int, int>(Q::X, 0); return 0; } However, when I compile this with g++ using the default settings (cygwin gcc 4.5.3) it throws a linker error at me:
undefined reference to `Q::X' I'm totally stumped here -- MSVC compiles this just fine yet my gcc does not. (MinGW also works fine.)