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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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