[Langage] GCC 4.3 et redefinition operateur!= dans un namespace
Bonjour,
je suis entrain de migrer mon code sous gcc 4.3 (de 4.1 vers 4.3 passage à nouvelle distribution oblige) et j'ai une erreur de gcc que j'arrive pas à modifier.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
namespace TOTO
{
class TOTO_API TITI
{
public:
/// @name Constructors and destructor.
//@{
/// \brief Constructor of \ref TOTO::TITI "TITI" with all the parameters.
TITI( const std::string& type,
const std::string& material,
bool visible ) ;
/// \brief Destructor of \ref TOTO::TITI "TITI".
virtual ~TITI() ;
///\brief Copy operator
TITI& operator = ( const TITI& ref ) ;
//@}
/// @name Public member Type.
//@{
...
//@}
protected:
/// \brief Copy
void _copy( const TITI& q ) ;
/// @name Friend compare operators.
//@{
///\brief Inequality operator for \ref TOTO::TITI "TITI".
friend TOTO_API bool operator != ( const TITI& d0, const TITI& d1 ) ;
///\brief Equality operator for \ref TOTO::TITI "TITI".
friend TOTO_API bool operator == ( const TITI& d0, const TITI& d1 )
{ return !( d0 != d1 ) ; }
//@}
} ;
} |
et le cpp correspondant à l'erreur :
Code:
1 2 3 4 5 6 7 8 9
|
//========================================================================
// != operator
bool TOTO::operator != ( const TOTO::TITI& d0, const TOTO::TITI& d1 )
{
return d0._type != d1._type
|| d0._material != d1._material
|| d0._visible != d1._visible ;
} |
Et l'erreur :
erreur : 'bool TOTO::operator!=(const TOTO::TITI&, const TOTO::TITI&)' should have been declared inside 'TOTO'
Voilà si qq a une idée!!
Merci