Ecco quello che sto cercando di fare:controllo se membro esista utilizzando enable_if
template <typename T> struct Model
{
vector<T> vertices ;
#if T has a .normal member
void transform(Matrix m)
{
each vertex in vertices
{
vertex.pos = m * vertex.pos ;
vertex.normal = m * vertex.normal ;
}
}
#endif
#if T has NO .normal member
void transform(Matrix m)
{
each vertex in vertices
{
vertex.pos = m * vertex.pos ;
}
}
#endif
} ;
Ho visto examples di usare enable_if
, ma non riesco a capire come applicare enable_if
a questo problema, o se addirittura può essere applicato.
'enable_if' non viene utilizzato per verificare se esiste un membro, ma viene utilizzato per rimuovere i sovraccarichi. – Pubby
Non posso usarlo per fare qualcosa di simile (suggerimento in modifica sopra)? – bobobobo
No, stai cercando un 'statico if' che non esiste ancora. Quello che vuoi è completamente possibile, semplicemente non userà la sintassi come quella. – Pubby