For one of my projects, what I really wanted to do was this (simplifying it to the bare minimum);
struct Move { int src; int dst; }; struct MoveTree
No, it's not portable. codepad.org does not compile it.
t.cpp:14: instantiated from here Line 215: error: '__gnu_cxx::_SGIAssignableConcept<_Tp>::__a' has incomplete type compilation terminated due to -Wfatal-errors.