Conflitto di sovraccarico con tipi vettoriali __M128, __M256 in GCC
-
30-10-2019 - |
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