VC2003 does not support covariant return types, along with other ANSI
defined C++ language features and won't work with ActiveMQ-CPP. 

Regards
Tim.

On Thu, 2008-07-24 at 20:11 -0700, anju_singh wrote:
> Hi,
> 
> Changed the version in 2005 vcproject file (vs2005-activemq.vcproj) to 7.10
> and tried to compile it with VS2003.
> Got errors that looked like (not posting all, just a few to keep the post
> readable)
> -----------------------------------------------------------------------------------------------------
> -----------------------------------------------------------------------------------------------------
> ..\src\main\activemq\connector\ConnectorException.h(80) : error C2511:
> 'decaf::lang::Throwable
> *activemq::connector::ConnectorException::clone(void)' : overloaded member
> function not found in 'activemq::connector::ConnectorException'
>         ..\src\main\activemq\connector\ConnectorException.h(29) : see
> declaration of 'activemq::connector::ConnectorException'
> ..\src\main\activemq\connector\ConnectorException.h(80) : error C2511:
> 'activemq::exceptions::ActiveMQException
> *activemq::connector::ConnectorException::clone(void)' : overloaded member
> function not found in 'activemq::connector::ConnectorException'
>         ..\src\main\activemq\connector\ConnectorException.h(29) : see
> declaration of 'activemq::connector::ConnectorException'
> -----------------------------------------------------------------------------------------------------
> -----------------------------------------------------------------------------------------------------
> 
> VS2005 compiler doesn't complain about this but VS2003 compiler does.
> 
> Investigated a bit to find out that the return type of virtual function
> clone() is different in the inherited classes.  
> For e.g:
> ----------------------------------------------------------------------------------------------------
> for ConnectorException : public exceptions::ActiveMQException
> 
>         virtual ConnectorException* clone() const{
>             return new ConnectorException( *this );
>         }
> 
> ----------------------------------------------------------------------------------------------------
> Return type above is ConnectorException*
> 
> but the base class has following definition:
> ----------------------------------------------------------------------------------------------------
> virtual ActiveMQException* clone() const;
> ----------------------------------------------------------------------------------------------------
> Return type above is ActiveMQException*
> 
> I feel this is not right. Cloning should return the base type.
> Moreover VS2003 compiler is pretty unhappy about it.
> 
> Please let me know what you guys think about this. Meanwhile I have changed
> it in my activemq-cpp distribution to cheer up the compiler.
> 
> Thanks,
> Anju
> 
> 
> 

Reply via email to