C++ Enumeracao e Classes genéricas

O professor mandou fazer um trabalho com um monte de restrições.
Isso em java
Um deles foi o uso de Enum para guardar montadoras(como Ford, etc)

Ai tinha que fazer um classse genérica que criasse um vetor para ser uma fila circular. Essa classe generica poderia acessar String, Integer e (Enum) Montadoras.
E tinha que tratar se era mesmo, por exemplo, tinha q tratar se oque o cara passo era realmente uma montdor do enum, ou seja, ver se era FORD oque foi informado.
Bem, eu java eu me virei.

Agora ele chego e disse,
Passem o código para C++
Nunk tivemos C++ na faci. Entao eu n sei nada de C++

Tenho pegado material para estudo, e fiz alguma coisa ate agora, mas empaquei nos problemas.
Primeiro, como vou comparar uma string informada com o nome de um Enum em C++, porque um Enum em C++ guarda um numero sequencia, n uma string.
EX: O cara informa FORD, como eu vou ver se o FORD esta no enum, sendo que se tiver, o valor de retorno pode ser 1 por exemplo.

Outro problema e que o vetor da fila circular é tipada pelo tipo generico, nem sei como vou fazer isso, alem do mais ele tem um tamanho fixo, informado pelo usuario, e ate onde eu vi, no C++ o tamanho e o tipo e informado na hora de criar o vetor, entao nem sei como eu teria que trocar o tipo do vetor. O tamanho eu vi algo como o uso do malloc para armazenar mais espaco, mas n entendi como usar.

Bem, são alguns dos problemas que enfrento, alguem poderia me ajudar?