Je crée plusieurs fois que j'utilise la classe DataBuffer dans de nombreux endroits dans le code, elle devrait donc être rapide et légère. De plus j'utilise différentes tailles de tampon, afin de réduire les allocations de mémoire que j'ai écrit ce modèle:Question à propos de rvalue en C++ 0x
template<unsigned int T_buffer_size> class DataBuffer
{
public:
DataBuffer (const unsigned int &buffer_size);
char buffer [T_buffer_size];
const unsigned int buffer_size;
};
Le problème est que je dois copier DataBuffer objets plusieurs fois. C'est pourquoi je me demande si le constructeur de déménagement peut aider ici. Existe-t-il un moyen facile de déplacer mon tableau 'buffer' entre les objets?
Il est facile de mettre en œuvre cette classe:
class DataBuffer
{
public:
DataBuffer (const unsigned int &buffer_size);
char *buffer;
const unsigned int buffer_size;
};
Mais parce que « tampon » est un pointeur régulier, il prend plus de temps pour accéder aux données stockées à l'intérieur ...
Je suis confus, pourquoi est-il passé une taille de tampon deux fois? – GManNickG
@GMan: Il suffit de regarder son pseudo. il a gaffé. – sbi
Évitez de passer des types primitifs par référence dans les appels de fonction (sauf si vous avez réellement besoin d'une référence). Cela ne rendra pas votre code plus facile à lire ni plus rapide. Cela pourrait en fait le rendre plus lent et étrange pour le lecteur occasionnel. –