Concettualmente non fai altro che creare un T** visto che std::vector di suo ha un T* interno. Quindi potrebbe non avere senso.Originariamente inviato da RooccoXXI
Ciao a tutti.
Ora, mentre con gli array non vedo problemi perché sono strutture statiche, mi chiedo se ha senso utilizzate un puntatore a uno std::vector, che può essere riallocato se vengono aggiunti nuovi dati.
Ha più senso invece utilizzare un puntatore T* interno alla tua classe da manipolare come ti serve.
Dipende dal compilatore che usi. Se conforme allo standard C++0x ( g++ > 4.3, Vc++2010), si puo fare una cosa del genere.Inoltre mi chiedevo se è possibile limitare l'istanza di una classe template a tipi fondamentali
Altrimenti sei costretto a specializzare ogni istanza per i tipi fondamentali.codice:template <typename T> class Vector { static_assert( std::is_fundamental<T>::value, "Il tipo di dato non è nativo"); etc...
codice:// Vector class #ifndef VECTOR_H #define VECTOR_H #include <vector> using std::vector; template <typename T> class Vector { public: Vector(); Vector(const T [], int); Vector(const vector[/QUOTE]&<T> ); Vector& operator=(const Vector& ) // eventuale supporto per la move semantics (solo C++0x) Vector& operator=(Vector&& ) Vector& operator=(Vector&& ) ~Vector(); private: }; #endif template <typename T> Vector<T>::Vector(const vector<T>& array) { ... }

Rispondi quotando