Namespaces | Classes | Functions

my_lib Namespace Reference

Ma petite bibliothèque perso. More...

Namespaces

namespace  internal
 

Fonctions et classes internes.


namespace  type_list
 

Listes de types et classes associées.


Classes

struct  any
 Encapsulation d'une valeur de type quelconque. More...
struct  bad_any_cast
 Exception pour any_cast. More...
class  bool_vector_t
 Vecteurs de booléens. More...
struct  AbstractIterator
 Abrasure du conteneur. More...
struct  Collection
 Collection simple. More...
struct  Iterator
 Handler sur un itérateur. More...
class  int_vector_t
 Vecteurs d'entiers. More...
struct  login_t
struct  noncopyable
struct  Nuple
 Ex 2: N-uplet de valeurs de types différents. More...
struct  Nuple< type_list::NullType >
 Spécialisation pour les N-uplets vides. More...
struct  login_impl

Functions

template<typename T >
bool any_typeof (const any &a)
 Test le type de la valeur encapsulée dans un any.
template<typename T >
any_cast (const any &a)
 Retourne la valeur encapsulée dans un any.
std::ostream & operator<< (std::ostream &o, const any &a)
 Ecriture dans un flot sortant.
template<typename T , typename U >
bool instanceof (const U &val)
 Teste la compatibilité d'un objet avec un type.
void byte_print (long l)
 Affichage d'un entier long octet par octet.
void byte_swap (void *p, void *q)
 Echange le contenu des octets pointés.
void big_to_little (long &l)
 Echange l'ordre des octets.

Detailed Description

Ma petite bibliothèque perso.

Si on crée une bibliothèque, il est conseillé de l'encapsuler dans un namespace, de même qu'en Java, elle serait dans un package. On peut créer des namespaces à l'intérieur des namespaces, de même qu'on peut avoir en Java des sous packages.


Function Documentation

template<typename T >
T my_lib::any_cast ( const any &  a  ) 

Retourne la valeur encapsulée dans un any.

any_cast doit pouvoir accéder au champ privé val

On utilise dynamic_cast pour effectuer le transtypage du undefined_type associé au any en Value<T>.

Exceptions:
bad_cast si la valeur n'est pas de type T
Template Parameters:
T le type de la valeur
Parameters:
l'objet any qui encapsule la valeur
Returns:
la valeur encapsulé

Definition at line 47 of file any.hxx.

template<typename T >
bool my_lib::any_typeof ( const any &  a  ) 

Test le type de la valeur encapsulée dans un any.

any_typeof doit pouvoir accéder au champ privé val

On utilise typeid pour effectuer ce test

Template Parameters:
T le type à tester
Parameters:
l'objet any qui encapsule la valeur
Returns:
vrai si la valeur est exactement du type T

Definition at line 42 of file any.hxx.

void my_lib::big_to_little ( long &  l  )  [inline]

Echange l'ordre des octets.

Si on inline, le code doit etre inclus il n'y a pas possibilité de se linker.

Parameters:
l le long dont il faut échanger les octets
See also:
td1.cc

Definition at line 42 of file long_manip.hh.

void my_lib::byte_print ( long  l  ) 

Affichage d'un entier long octet par octet.

Parameters:
l l'entier à afficher
See also:
td1.cc

Definition at line 24 of file long_manip.cc.

void my_lib::byte_swap ( void *  p,
void *  q 
)

Echange le contenu des octets pointés.

Parameters:
p adresse du premier octet
q adresse du second octet
See also:
td1.cc

Definition at line 43 of file long_manip.cc.

template<typename T , typename U >
bool my_lib::instanceof ( const U &  val  ) 

Teste la compatibilité d'un objet avec un type.

Cette fonction a de l'intérêt pour les types polymorphes. On utilise l'opérateur dynamic_cast plutôt que typeid car la methode before de type_info ne reflète pas forcément l'ordre induit par l'héritage.

Lors de l'appel de la fonction, seul le premier paramètre template doit être indiqué, l'autre découle de l'argument.

Template Parameters:
T le type à tester
U le type de l'objet
Parameters:
val l'objet à tester
Returns:
vrai si le vrai type de val est un sous-type de T.

Definition at line 33 of file instanceof.hh.

std::ostream & my_lib::operator<< ( std::ostream &  o,
const any &  a 
)

Ecriture dans un flot sortant.

operator<< doit pouvoir accéder au champ privé val

Definition at line 37 of file any.hxx.

 All Classes Namespaces Files Functions Variables Typedefs Friends