vérifier si le membre existe à l'aide de enable_if

Voici ce que j'essaie de faire:

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
} ;

J'ai vu exemples de l'aide enable_if, mais je ne peux pas comprendre comment appliquer enable_if à ce problème, ou si elle peut même être appliquée.

  • enable_if n'est pas utilisée pour vérifier si un membre existe, elle est plutôt utilisée pour supprimer les surcharges.
  • Je ne peux pas l'utiliser pour faire quelque chose comme (suggestion de modifier ci-dessus)?
  • Non, vous êtes désireux d'un static if qui n'existe pas encore. Ce que vous voulez, c'est tout à fait possible, il ne peut pas utiliser une syntaxe comme ça.
InformationsquelleAutor bobobobo | 2012-12-09