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.)