Afin d'éviter les allocations inutiles de chaînes de caractères dans une classe, j'ai adopté un modèle similaire au suivant :
#include <algorithm>
using namespace std;
class Person
{
public:
template<typename Iter>
void GetName(Iter iter) const // Allow for caller to provide the buffer
{
const char *name = ...; // Get the name
size_t cchName = ...; // Get the size
copy(&name[0], &name[cchName], iter);
}
string GetName() const // Convenience method
{
string name;
this->GetName(inserter(name, name.end()));
return name;
}
};
Cependant, le code semble également fonctionner parfaitement bien lorsque je dis
void GetName(const Iter &iter) const // <----- changed to const &
Y a-t-il une raison (performance ou autre) pour que j'utilise un système de gestion de l'information de l'entreprise ? const &
de l'itérateur, ou dois-je simplement utiliser la fonction Iter
lui-même ? (Je ne connais pas la convention pour les itérateurs, ou s'il y a des implications). (C++03)