Domanda

Ho iniziato a giocare con le istruzioni AVX sul nuovo processore Sandy Bridge di Intel. Sto usando GCC 4.5.2, build TDM-GCC 64 bit di MINGW64.

Voglio sovraccaricare l'operatore << affinché Ostream sia in grado di stampare i tipi di vettore __m256, __m128 ecc. alla console. Ma sto incontrando un conflitto di sovraccarico. La seconda funzione nel seguente codice produce un errore "Conflitti con la dichiarazione precedente void f(__vector(8) float)":

void f(__m128 v) {
cout << 4;
}

void f(__m256 v) {
    cout << 8;
}

Sembra che il compilatore non possa distinguere tra i due tipi e li considera entrambi f(float __vector).

C'è un modo per aggirare questo? Non sono stato in grado di trovare nulla online. Qualsiasi aiuto è molto apprezzato.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top