Bonjour, j'ai une classe template pour laquelle je surcharge l'opérateur(), celui doit ainsi pouvoir 5 arguments dont 4 facultatifs.
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
 
template <class T> demo
{
public
      demo(T a)
      {
          membre = a;
      }
 
      inline T& operator()( int dim1, int dim2 = 0, int dim3 = 0, int dim4 = 0, int dim5 = 0 ) 
      {
          return membre;
      }
 
protected;
  T membre;
 
}
Si j'effectue dans du code un appel de l'opérateur() le compilateur me dit qu'il attend 5 paramètres.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
int main(int argc, char* argv[])
{
    demo<double> *essai = new demo<double>(2.5);
 
    (*essai)(1);
}
Erreur de compilation