Bonjour,

je suis en train de lire "Cuda by example", et je viens de tomber sur le code suivant:

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
struct cuComplex
{
    float  r;
    float  i;
    cuComplex( float a, float b ) : r(a), i(b) {}
    float magnitude2( void ) { return r * r + i * i; }
    cuComplex operator*(const cuComplex& a)
    {
        return cuComplex(r*a.r - i*a.i, i*a.r + r*a.i);
    }
    cuComplex operator+(const cuComplex& a)
    {
        return cuComplex(r+a.r, i+a.i);
    } 
};
Ça compile et ça tourne. On dirait une classe C++. Mais je n'ai jamais vu pareille chose ni en C, ni en C++. Peut-on me confirmer que ce n'es ni du C ni du C++?
Je ne trouve pas non plus de chose similaires dans la doc de CUDA. Quelqu'un peut-il me dire d'où ça sort?

D'autre part, "cuComplex( float a, float b ) : r(a), i(b) {}" ressemble à une sorte de constructeur mais le fonctionnement de cette partie " : r(a), i(b)" n'est pas très clair pour moi...