/// Does this code expose a GCC bug? #include #include using namespace std; #define SHOW_BUG template struct Base { template #ifdef SHOW_BUG void push_back(T& t) #else void push_back2(T& t) #endif { static_cast(this)->push_back(t); } }; struct P : public Base

, protected vector { friend class Base

; vector v; }; int main() { int i=10; P p; #ifdef SHOW_BUG p.push_back(i); #else p.push_back2(i); #endif return 0; }