Define status
and it will work. See below. As for the standard, I don't know which compiler is right.
template <class A> struct Expression { public: static const int status; }; struct Foo : public Expression<Foo> { static const int status_ = 0; }; template< typename A > const int Expression<A>::status = A::status_; int main( void ) { return 0; }
source share