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 > | |
| 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. | |
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.
| 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>.
| bad_cast | si la valeur n'est pas de type T |
| T | le type de la valeur |
| l'objet | any qui encapsule la valeur |
| 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
| T | le type à tester |
| l'objet | any qui encapsule la valeur |
| 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.
| l | le long dont il faut échanger les octets |
Definition at line 42 of file long_manip.hh.
| void my_lib::byte_print | ( | long | l | ) |
Affichage d'un entier long octet par octet.
| l | l'entier à afficher |
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.
| p | adresse du premier octet | |
| q | adresse du second octet |
Definition at line 43 of file long_manip.cc.
| 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.
| T | le type à tester | |
| U | le type de l'objet |
| val | l'objet à tester |
Definition at line 33 of file instanceof.hh.
1.7.1