one think 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 compile g++ using default settings (cygwin gcc 4.5.3) throws linker error @ me:
undefined reference `q::x' i'm totally stumped here -- msvc compiles fine yet gcc not. (mingw works fine.)
the linker fails find definition of q::x.
this because std::pair<> constructor takes arguments references const, , q::x l-value, hence requires external definition of q::x able refer that.
a portable fix:
int const q::x;
Comments
Post a Comment