Latest VAX, Win7, VS2008, C++.
VAX has problems to resolve the right type in template inheritance for the "Implement Virtual Methods..." function. See following example.
template< typename T >
struct s
{
typedef T t_Type ;
} ;
template< typename T >
class CBase : public T
{
public:
virtual typename T::t_Type f( void ) = 0 ;
} ;
class CImpl
: public CBase< s< int > >
{
public:
// VAX "implements" the following ("typename T::" should be removed)
// virtual typename T::t_Type f( void )
// {
// throw std::exception("The method or operation is not implemented.");
// }
t_Type f( void ){ return 1 ;}
} ;
Also note, that CImpl may also be a template class and in some cirumstances the typename and qualifier is required.