Originariamente inviato da shodan
Concettualmente non fai altro che creare un T** visto che std::vector di suo ha un T* interno. Quindi potrebbe non avere senso.
Ha più senso invece utilizzare un puntatore T* interno alla tua classe da manipolare come ti serve.
Immaginavo che std::vector avesse un puntatore interno (ovviamente!). Però allora se il mio puntatore è inutile (tra l'altro dovrebbe essere vector<T>* e non solo T*, giusto?) come faccio a creare una classe con un solo dato membro (il mio Vettore vero e proprio) che funzioni sia per gli std::vector che per gli array?!

Dipende dal compilatore che usi. Se conforme allo standard C++0x ( g++ > 4.3, Vc++2010), si puo fare una cosa del genere.
codice:
template <typename T>
class Vector { 
    static_assert( std::is_fundamental<T>::value, "Il tipo di dato non è nativo");
etc...
Altrimenti sei costretto a specializzare ogni istanza per i tipi fondamentali.
Non ho più aggiornato il compilatore. Sono fermo alla 4.2.1. Prossimamente però l'aggiorno ma prima di quest'estate non avrò tempo di aggiornare più di quel tanto le mie conoscenze in C++ (C++0x)!

Il passaggio per riferimento l'avevo già visto, comunque grazie!