Inline membre opérateurs vs inline opérateurs C++

Si j'ai deux structures:

struct A
{
    float x, y;
    inline A operator*(A b) 
    {
        A out;
        out.x = x * b.x;
        out.y = y * b.y;
        return out;
    } 
}

Et un équivalent struct

struct B
{
    float x, y;
}

inline B operator*(B a, B b) 
{
    B out;
    out.x = a.x * b.x;
    out.y = a.y * b.y;
    return out;
} 

Sauriez-vous une raison pour B de l'opérateur* pour compiler tout différemment, ou d'exécuter un plus lent ou plus rapide que l'opérateur* (les actions qui vont à l'intérieur, sur les fonctions doivent être pertinentes)?

Ce que je veux dire, c'est... ce serait de déclarer la ligne de l'opérateur en tant que membre, vs non en tant que membre, toute générique effet sur la vitesse de la fonction elle-même, que ce soit?

J'ai un certain nombre de différentes structures qui suivent actuellement la ligne des membres de l'opérateur de style... Mais je voulais le modifier pour être valide, le code en C, au lieu; donc, avant de me faire ce que je voulais savoir si il y aurait des modifications à la performance/la compilation.

Vous devriez lire stackoverflow.com/questions/4421706/operator-overloading qui montre des techniques plus vite que l'un de ces.

OriginalL'auteur Serge | 2012-05-20