Auteur : Alp
| Version : 13/08/2008 | | |
| |
template < typename T>
struct CallTraits
{
template < typename U, bool Big> struct CallTraitsImpl;
template < typename U>
struct CallTraitsImpl< U, true >
{
typedef const U& Type;
} ;
template < typename U>
struct CallTraitsImpl< U, false >
{
typedef U Type;
} ;
typedef typename CallTraitsImpl< T, (sizeof (T) > 8 )> :: Type ParamType;
} ;
|
|
| |
Cette fonction permet a un comportement semblable à celui de std::copy sauf que l'élément courant est soumis à un prédicat avant d'être copié. Il va de soit que la copie n'a lieu que si le prédicat est validé.
template < typename InputIterator, typename OutputIterator, typename Pred>
OutputIterator copy_if (InputIterator begin, InputIterator end,
OutputIterator destBegin, Pred p)
{
while (begin ! = end) {
if (p (* begin)) * destBegin+ + = * begin;
+ + begin;
}
}
|
|
| |
Cet petit foncteur est là pour vous permettre de réaliser un delete via std::for_each sur conteneur
struct DeleteObject {
template < typename T>
void operator ()(const T* ptr) const {
delete ptr;
}
|
|
| |
On est souvent amené à sérialiser sous forme de chaine de caractères un ensemble de données quelconque par exemple quand on travaille dans le domaine de la programmation réseau. Cette fonction permet de réaliser pour vous ce travail
template < class CONTENEUR> void serialiser (const CONTENEUR& v,char c,std:: string& s)
{
s.clear ();
std:: ostringstream flx;
for (typename CONTENEUR:: const_iterator p= v.begin (); p! = v.end ();+ + p)
{
flx< < * p;
if (p! = v.end ())
flx< < c;
}
s= flx.str ();
if (v.size () > 0 )
s.erase (s.size ()- 1 );
}
|
|
Consultez les autres pages sources


Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2004 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.