Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
aide_memoire_syntaxe [2019/01/01 20:11] nico [Les directives d'inclusion] |
aide_memoire_syntaxe [2019/01/03 20:58] (Version actuelle) nico [Fichier header] |
||
---|---|---|---|
Ligne 322: | Ligne 322: | ||
extern int& r2; // ok, initialisation ailleurs | extern int& r2; // ok, initialisation ailleurs | ||
</code> | </code> | ||
+ | |||
Intialisation avec une litérrale : | Intialisation avec une litérrale : | ||
+ | |||
<code cpp> | <code cpp> | ||
int& r3 = 123; // erreur | int& r3 = 123; // erreur | ||
const int& r3 = 123; // Ok, lvalue | const int& r3 = 123; // Ok, lvalue | ||
</code> | </code> | ||
+ | |||
2.9. Les tableaux | 2.9. Les tableaux | ||
Les tableaux à une dimension | Les tableaux à une dimension | ||
+ | |||
<code cpp> | <code cpp> | ||
int a1[10]; | int a1[10]; | ||
Ligne 335: | Ligne 339: | ||
int a3[8] = { 1, 2, 3, 4 }; // ajout de 4 éléments 0 à la fin | int a3[8] = { 1, 2, 3, 4 }; // ajout de 4 éléments 0 à la fin | ||
</code> | </code> | ||
+ | |||
Pointeur sur tableau | Pointeur sur tableau | ||
+ | |||
<code cpp> | <code cpp> | ||
int v[] = { 1, 2, 3, 4 }; | int v[] = { 1, 2, 3, 4 }; | ||
Ligne 346: | Ligne 352: | ||
int d = &v[2] - &v[0]; // d = 2 | int d = &v[2] - &v[0]; // d = 2 | ||
</code> | </code> | ||
+ | |||
Parcourir un tableau | Parcourir un tableau | ||
+ | |||
<code cpp> | <code cpp> | ||
int v[] = { 1, 2, 3, 4 }; | int v[] = { 1, 2, 3, 4 }; | ||
Ligne 352: | Ligne 360: | ||
for (int* p = &v[0]; p != &v[4]; ++p) { int x = *p; } | for (int* p = &v[0]; p != &v[4]; ++p) { int x = *p; } | ||
</code> | </code> | ||
+ | |||
Les tableaux à N dimensions | Les tableaux à N dimensions | ||
+ | |||
<code cpp> | <code cpp> | ||
int a2[15][20]; | int a2[15][20]; | ||
</code> | </code> | ||
+ | |||
Tableaux dynamiques | Tableaux dynamiques | ||
+ | |||
<code cpp> | <code cpp> | ||
int* pi; | int* pi; | ||
Ligne 364: | Ligne 376: | ||
delete[] table; | delete[] table; | ||
</code> | </code> | ||
+ | |||
2.10. Les espaces de nom | 2.10. Les espaces de nom | ||
+ | |||
<code cpp> | <code cpp> | ||
namespace std {} | namespace std {} | ||
Ligne 397: | Ligne 411: | ||
==== Fichier header ==== | ==== Fichier header ==== | ||
+ | <code cpp> | ||
// dans mon_fichier.h | // dans mon_fichier.h | ||
#ifndef MONFICHIER_H | #ifndef MONFICHIER_H | ||
Ligne 416: | Ligne 431: | ||
std::cout << "Salut tout le monde !" << std::endl; | std::cout << "Salut tout le monde !" << std::endl; | ||
} | } | ||
+ | </code> | ||
===== Les fonctions ===== | ===== Les fonctions ===== | ||
Ligne 422: | Ligne 437: | ||
==== Précisions sémantiques ==== | ==== Précisions sémantiques ==== | ||
+ | <code cpp> | ||
void f(int i) {} // i est un paramètre | void f(int i) {} // i est un paramètre | ||
f(j); // j est un argument | f(j); // j est un argument | ||
Ligne 438: | Ligne 454: | ||
// la fonction const et non const n'ont pas les mêmes signatures | // la fonction const et non const n'ont pas les mêmes signatures | ||
// static ? Inline ? | // static ? Inline ? | ||
+ | </code> | ||
+ | |||
4.2. Déclaration d'une fonction | 4.2. Déclaration d'une fonction | ||
+ | |||
+ | <code cpp> | ||
void f(); // sans paramètre de retour | void f(); // sans paramètre de retour | ||
Ligne 454: | Ligne 474: | ||
void* f(); // retourne un pointeur | void* f(); // retourne un pointeur | ||
+ | </code> | ||
==== Passage de paramètres ==== | ==== Passage de paramètres ==== | ||
+ | <code cpp> | ||
int i = 0; | int i = 0; | ||
void f1(int& i) { ++i; } // passage par référence | void f1(int& i) { ++i; } // passage par référence | ||
Ligne 481: | Ligne 502: | ||
} | } | ||
} | } | ||
+ | </code> | ||
==== Fonction static ==== | ==== Fonction static ==== | ||
+ | |||
+ | <code cpp> | ||
static void foo() {} | static void foo() {} | ||
+ | |||
+ | </code> | ||
==== Fonction variadique ==== | ==== Fonction variadique ==== | ||
+ | <code cpp> | ||
void f(... args) { | void f(... args) { | ||
} | } | ||
+ | </code> | ||
==== Les pointeurs de fonctions ==== | ==== Les pointeurs de fonctions ==== | ||
+ | <code cpp> | ||
int (f*) (int a); | int (f*) (int a); | ||
+ | </code> | ||
===== Les classes et structures ===== | ===== Les classes et structures ===== | ||
+ | |||
==== Syntaxe de bases ==== | ==== Syntaxe de bases ==== | ||
+ | <code cpp> | ||
struct A { int x, y; }; // définition de la structure | struct A { int x, y; }; // définition de la structure | ||
A a; // déclaration de la variable a de type A | A a; // déclaration de la variable a de type A | ||
Ligne 518: | Ligne 549: | ||
f(); // erreur | f(); // erreur | ||
g(a); // erreur | g(a); // erreur | ||
+ | </code> | ||
Forme canonique de Coplien | Forme canonique de Coplien | ||
+ | <code cpp> | ||
struct A { | struct A { | ||
A() {} // constructeur par défaut | A() {} // constructeur par défaut | ||
Ligne 529: | Ligne 562: | ||
A& operator= (A&& a); // affectation par déplacement [C++11] | A& operator= (A&& a); // affectation par déplacement [C++11] | ||
}; | }; | ||
+ | </code> | ||
Constructeurs | Constructeurs | ||
+ | <code cpp> | ||
struct A { | struct A { | ||
A(); // constructeur par défaut | A(); // constructeur par défaut | ||
Ligne 543: | Ligne 578: | ||
A a2(a); // constructeur par copie | A a2(a); // constructeur par copie | ||
A a3 = a; // opérateur de copie | A a3 = a; // opérateur de copie | ||
+ | </code> | ||
Initialisation | Initialisation | ||
+ | <code cpp> | ||
struct A { int x; }; | struct A { int x; }; | ||
A a1; // initialisation avec les valeurs par défaut | A a1; // initialisation avec les valeurs par défaut | ||
Ligne 568: | Ligne 605: | ||
// Tableau d'initialisation | // Tableau d'initialisation | ||
+ | |||
struct A { int x, y, z; }; | struct A { int x, y, z; }; | ||
A a = { 1, 2, 3 }; | A a = { 1, 2, 3 }; | ||
+ | </code> | ||
Accès aux variables et fonctions membres | Accès aux variables et fonctions membres | ||
+ | <code cpp> | ||
A a; | A a; | ||
a.x; | a.x; | ||
Ligne 584: | Ligne 624: | ||
a.*pi; | a.*pi; | ||
pa->*pi; | pa->*pi; | ||
+ | </code> | ||
Conversion | Conversion | ||
+ | <code cpp> | ||
struct A { | struct A { | ||
A(B const& b); // conversion implicite de B vers A | A(B const& b); // conversion implicite de B vers A | ||
Ligne 593: | Ligne 635: | ||
explicit operator B() const; // conversion implicite de A vers B [C++11] | explicit operator B() const; // conversion implicite de A vers B [C++11] | ||
}; | }; | ||
+ | </code> | ||
==== Les variables membres ==== | ==== Les variables membres ==== | ||
+ | <code cpp> | ||
a.x; // accès | a.x; // accès | ||
+ | </code> | ||
==== Fonctions membres ==== | ==== Fonctions membres ==== | ||
+ | <code cpp> | ||
a.x; // accès | a.x; // accès | ||
+ | </code> | ||
==== Opérateurs ==== | ==== Opérateurs ==== | ||
+ | <code cpp> | ||
Foncteurs (objets fonctions) | Foncteurs (objets fonctions) | ||
struct A { | struct A { | ||
Ligne 610: | Ligne 656: | ||
void operator() (B const& b, C const& c); // foncteur à deux argments | void operator() (B const& b, C const& c); // foncteur à deux argments | ||
}; | }; | ||
+ | </code> | ||
Déréfencement | Déréfencement | ||
+ | <code cpp> | ||
class PtrA { // classe pointeur sur A | class PtrA { // classe pointeur sur A | ||
A* p; | A* p; | ||
Ligne 621: | Ligne 669: | ||
// operator. interdit ! | // operator. interdit ! | ||
}; | }; | ||
+ | </code> | ||
Incrémentation et décrémentation | Incrémentation et décrémentation | ||
+ | <code cpp> | ||
struct A { | struct A { | ||
A& operator++ (); // préfixe : ++a | A& operator++ (); // préfixe : ++a | ||
Ligne 630: | Ligne 680: | ||
A operator-- (int); // postfixe : a-- | A operator-- (int); // postfixe : a-- | ||
}; | }; | ||
+ | </code> | ||
==== Héritage ==== | ==== Héritage ==== | ||
Ligne 635: | Ligne 686: | ||
Héritage simple | Héritage simple | ||
+ | <code cpp> | ||
struct A {}; | struct A {}; | ||
struct B1 : A {}; // héritage privé | struct B1 : A {}; // héritage privé | ||
Ligne 640: | Ligne 692: | ||
struct B : protected A {}; // héritage protected | struct B : protected A {}; // héritage protected | ||
struct B : private A {}; // héritage privé | struct B : private A {}; // héritage privé | ||
+ | </code> | ||
Héritage multiple | Héritage multiple | ||
+ | <code cpp> | ||
struct A {}; | struct A {}; | ||
struct B {}; | struct B {}; | ||
struct C : public A, public B {}; // hérite de A et B | struct C : public A, public B {}; // hérite de A et B | ||
+ | </code> | ||
Constructeur | Constructeur | ||
+ | <code cpp> | ||
struct A {}; | struct A {}; | ||
struct B1 : public A | struct B1 : public A | ||
Ligne 654: | Ligne 710: | ||
B() : A() {} | B() : A() {} | ||
}; | }; | ||
+ | </code> | ||
Fonctions virtuelles | Fonctions virtuelles | ||
+ | <code cpp> | ||
struct A { | struct A { | ||
virtual ~A(); // obligatoire si au moins une fonction virtuelle | virtual ~A(); // obligatoire si au moins une fonction virtuelle | ||
Ligne 662: | Ligne 720: | ||
virtual f(); // fonction virtuelle | virtual f(); // fonction virtuelle | ||
}; | }; | ||
+ | </code> | ||
Classe abstraite | Classe abstraite | ||
+ | <code cpp> | ||
struct A { // ne possède que des fonctions virtuelles pures | struct A { // ne possède que des fonctions virtuelles pures | ||
virtual f() = 0; // fonction virtuelle pure | virtual f() = 0; // fonction virtuelle pure | ||
}; | }; | ||
+ | </code> | ||
===== Les structures de contrôle ===== | ===== Les structures de contrôle ===== | ||
+ | <code cpp> | ||
break, continue, return | break, continue, return | ||
+ | </code> | ||
==== if ==== | ==== if ==== | ||
+ | <code cpp> | ||
if (condition) statement | if (condition) statement | ||
if (condition) { statement } | if (condition) { statement } | ||
if (condition) statement else statement | if (condition) statement else statement | ||
+ | </code> | ||
==== switch ==== | ==== switch ==== | ||
+ | <code cpp> | ||
swicth (key) { | swicth (key) { | ||
case ITEM1 : (…) break; | case ITEM1 : (…) break; | ||
Ligne 686: | Ligne 750: | ||
default : (…) | default : (…) | ||
} | } | ||
+ | </code> | ||
==== while et do ==== | ==== while et do ==== | ||
+ | <code cpp> | ||
while (condition) statement | while (condition) statement | ||
do f() while (condition) | do f() while (condition) | ||
do { … } while (condition) | do { … } while (condition) | ||
+ | </code> | ||
==== for ==== | ==== for ==== | ||
+ | <code cpp> | ||
int v[] = { 1, 2, 3, 4 }; | int v[] = { 1, 2, 3, 4 }; | ||
for (;;) {} // forever | for (;;) {} // forever | ||
for (int i = 0; i < 4; ++i) { int x = v[i]; } | for (int i = 0; i < 4; ++i) { int x = v[i]; } | ||
for (int* p = &v[0]; p != &v[4]; ++p) { int x = *p; } | for (int* p = &v[0]; p != &v[4]; ++p) { int x = *p; } | ||
+ | </code> | ||
==== try et catch ==== | ==== try et catch ==== | ||
+ | <code cpp> | ||
try {} handler_list | try {} handler_list | ||
+ | </code> | ||
==== goto ==== | ==== goto ==== | ||
+ | <code cpp> | ||
goto identifier; | goto identifier; | ||
identifier : statement | identifier : statement | ||
+ | </code> | ||
===== La surcharge des opérateurs ===== | ===== La surcharge des opérateurs ===== | ||
+ | <code cpp> | ||
void* operator new(size_t); | void* operator new(size_t); | ||
void operator delete(void*); | void operator delete(void*); | ||
void* operator new[](size_t); | void* operator new[](size_t); | ||
void operator delete[](void*); | void operator delete[](void*); | ||
+ | </code> | ||
===== Les templates ===== | ===== Les templates ===== | ||
+ | <code cpp> | ||
Les fonctions template | Les fonctions template | ||
template<class T> f() {} | template<class T> f() {} | ||
Les classes template | Les classes template | ||
template<class T> class A {}; | template<class T> class A {}; | ||
+ | </code> | ||
===== Les exceptions ===== | ===== Les exceptions ===== | ||
+ | <code cpp> | ||
try { … } | try { … } | ||
catch (bad_alloc) { … } | catch (bad_alloc) { … } | ||
+ | </code> | ||
===== La bibliothèque standard ===== | ===== La bibliothèque standard ===== | ||
Ligne 732: | Ligne 810: | ||
Utiliser une classe de la STL directement : | Utiliser une classe de la STL directement : | ||
+ | <code cpp> | ||
std::vector<int> v; | std::vector<int> v; | ||
+ | </code> | ||
Utiliser une classe de l'espace de nom std : | Utiliser une classe de l'espace de nom std : | ||
+ | <code cpp> | ||
using std::vector; | using std::vector; | ||
vector<int> v; | vector<int> v; | ||
+ | </code> | ||
Utiliser toutes les classes de l'espace de nom std : | Utiliser toutes les classes de l'espace de nom std : | ||
+ | <code cpp> | ||
using namespace std; | using namespace std; | ||
vector<int> v; | vector<int> v; | ||
+ | </code> | ||
Quelques fichiers de la bibliothèque standard | Quelques fichiers de la bibliothèque standard | ||
+ | <code cpp> | ||
<iostream> | <iostream> | ||
<cctype> => fonction isalpha(), etc. | <cctype> => fonction isalpha(), etc. | ||
+ | </code> | ||
==== Les conteneurs ==== | ==== Les conteneurs ==== | ||
Ligne 755: | Ligne 841: | ||
== vector == | == vector == | ||
+ | <code cpp> | ||
vector<int> v1; // vecteur de 0 élément | vector<int> v1; // vecteur de 0 élément | ||
vector<int> v2(100); // vecteur de 100 éléments initialisés avec 0 | vector<int> v2(100); // vecteur de 100 éléments initialisés avec 0 | ||
Ligne 761: | Ligne 848: | ||
int& i = v[0]; | int& i = v[0]; | ||
int* p = &v[0]; // pointeur vers le premier élément | int* p = &v[0]; // pointeur vers le premier élément | ||
+ | </code> | ||
== list == | == list == | ||
Ligne 776: | Ligne 864: | ||
== map == | == map == | ||
+ | <code cpp> | ||
map<string, double> table; | map<string, double> table; | ||
table["pi"] = 3.14159265358979; | table["pi"] = 3.14159265358979; | ||
+ | </code> | ||
== multimap == | == multimap == | ||
Ligne 793: | Ligne 883: | ||
=== C++11 === | === C++11 === | ||
+ | <code cpp> | ||
unordered_set<T> | unordered_set<T> | ||
unordered_multiset<T> | unordered_multiset<T> | ||
Ligne 799: | Ligne 890: | ||
forward_list<T> | forward_list<T> | ||
array<T, N> | array<T, N> | ||
+ | </code> | ||
=== Créer son propre conteneur === | === Créer son propre conteneur === | ||
Ligne 806: | Ligne 898: | ||
=== Les algorithmes non modifiant === | === Les algorithmes non modifiant === | ||
+ | <code cpp> | ||
10.2.1.1. foreach | 10.2.1.1. foreach | ||
Ligne 829: | Ligne 922: | ||
10.2.1.12. search_n | 10.2.1.12. search_n | ||
+ | </code> | ||
- | 10.2.2. Les algorithmes modifiants | + | ===Les algorithmes modifiants=== |
+ | |||
+ | <code cpp> | ||
10.2.2.1. transform | 10.2.2.1. transform | ||
Ligne 880: | Ligne 976: | ||
10.2.2.25. random_shuffle | 10.2.2.25. random_shuffle | ||
+ | </code> | ||
== C++11 == | == C++11 == | ||
+ | <code cpp> | ||
bool all_of(Iter first, Iter last, Pred pred) | bool all_of(Iter first, Iter last, Pred pred) | ||
bool any_of(Iter first, Iter last, Pred pred) | bool any_of(Iter first, Iter last, Pred pred) | ||
bool none_of(Iter first, Iter last, Pred pred) | bool none_of(Iter first, Iter last, Pred pred) | ||
+ | |||
Iter find_if_not(Iter first, Iter last, Pred pred) | Iter find_if_not(Iter first, Iter last, Pred pred) | ||
+ | |||
OutIter copy_if(InIter first, InIter last, OutIter result, Pred pred) | OutIter copy_if(InIter first, InIter last, OutIter result, Pred pred) | ||
OutIter copy_n(InIter first, Size n, OutIter result) | OutIter copy_n(InIter first, Size n, OutIter result) | ||
+ | |||
uninitialized_copy_n(InIter first, Size n, OutIter result) | uninitialized_copy_n(InIter first, Size n, OutIter result) | ||
+ | |||
OutIter move(InIter first, InIter last, OutIter result) | OutIter move(InIter first, InIter last, OutIter result) | ||
- | OutIter move_backward(InIter first, InIter last, result) s | + | OutIter move_backward(InIter first, InIter last, result) |
- | is_partitioned(InIter first, InIter last, Pred pred) | + | |
+ | sis_partitioned(InIter first, InIter last, Pred pred) | ||
pair<OutIter1, OutIter2> partition_copy(InIter first, InIter last, OutIter1 out_true, OutIter2 out_false, Pred pred) | pair<OutIter1, OutIter2> partition_copy(InIter first, InIter last, OutIter1 out_true, OutIter2 out_false, Pred pred) | ||
+ | |||
Iter partition_point(Iter first, Iter last, Pred pred) | Iter partition_point(Iter first, Iter last, Pred pred) | ||
+ | |||
RAIter partial_sort_copy(InIter first, InIter last, RAIter result_first, RAIter result_last) | RAIter partial_sort_copy(InIter first, InIter last, RAIter result_first, RAIter result_last) | ||
RAIter partial_sort_copy(InIter first, InIter last, RAIter result_first, RAIter result_last, Compare comp) | RAIter partial_sort_copy(InIter first, InIter last, RAIter result_first, RAIter result_last, Compare comp) | ||
+ | |||
bool is_sorted(Iter first, Iter last) | bool is_sorted(Iter first, Iter last) | ||
bool is_sorted(Iter first, Iter last, Compare comp) | bool is_sorted(Iter first, Iter last, Compare comp) | ||
+ | |||
Iter is_sorted_until(Iter first, Iter last) | Iter is_sorted_until(Iter first, Iter last) | ||
Iter is_sorted_until(Iter first, Iter last, Compare comp) | Iter is_sorted_until(Iter first, Iter last, Compare comp) | ||
+ | |||
bool is_heap(Iter first, Iter last) Vrai si [first, last) | bool is_heap(Iter first, Iter last) Vrai si [first, last) | ||
bool is_heap(Iter first, Iter last, Compare comp) | bool is_heap(Iter first, Iter last, Compare comp) | ||
+ | |||
Iter is_heap_until(Iter first, Iter last) | Iter is_heap_until(Iter first, Iter last) | ||
Iter is_heap_until(Iter first, Iter last, Compare comp) | Iter is_heap_until(Iter first, Iter last, Compare comp) | ||
+ | |||
T min(initializer_list<T> t) | T min(initializer_list<T> t) | ||
T min(initializer_list<T> t, Compare comp) | T min(initializer_list<T> t, Compare comp) | ||
T max(initializer_list<T> t) | T max(initializer_list<T> t) | ||
T max(initializer_list<T> t, Compare comp) | T max(initializer_list<T> t, Compare comp) | ||
+ | |||
pair<const T&, const T&> minmax(const T& a, const T& b) | pair<const T&, const T&> minmax(const T& a, const T& b) | ||
pair<const T&, const T&> minmax(const T& a, const T& b, Compare comp) | pair<const T&, const T&> minmax(const T& a, const T& b, Compare comp) | ||
Ligne 915: | Ligne 1026: | ||
pair<Iter, Iter> minmax_element(Iter first, Iter last) | pair<Iter, Iter> minmax_element(Iter first, Iter last) | ||
pair<Iter, Iter> minmax_element(Iter first, Iter last, Compare comp) | pair<Iter, Iter> minmax_element(Iter first, Iter last, Compare comp) | ||
+ | |||
void iota(Iter first, Iter last, T value) | void iota(Iter first, Iter last, T value) | ||
+ | </code> | ||
10.3. Iterateurs et allocateurs | 10.3. Iterateurs et allocateurs | ||
Ligne 922: | Ligne 1035: | ||
=== Opérations sur les caractères === | === Opérations sur les caractères === | ||
+ | <code cpp> | ||
Char c = ' '; | Char c = ' '; | ||
bool t = isspace(c); // test si est une espace | bool t = isspace(c); // test si est une espace | ||
bool t = isdigit(c); // test si est un chiffre | bool t = isdigit(c); // test si est un chiffre | ||
bool t = isalpha(c); // test si est une lettre | bool t = isalpha(c); // test si est une lettre | ||
+ | </code> | ||
=== Manipuler les chaînes de caractères === | === Manipuler les chaînes de caractères === | ||
+ | <code cpp> | ||
bool t = isalnum(c); // test si est un chiffre ou une lettre | bool t = isalnum(c); // test si est un chiffre ou une lettre | ||
string s; | string s; | ||
s = "une chaine de caractères"; | s = "une chaine de caractères"; | ||
string s2 = "une autre chaine"; | string s2 = "une autre chaine"; | ||
- | 10.4.3. manipuler les chaînes style C | + | </code> |
+ | |||
+ | === manipuler les chaînes style C === | ||
+ | |||
+ | <code cpp> | ||
strlen() | strlen() | ||
strcpy() | strcpy() | ||
strcmp() | strcmp() | ||
+ | </code> | ||
==== Les flux ==== | ==== Les flux ==== | ||
=== Flux de sortie === | === Flux de sortie === | ||
+ | <code cpp> | ||
cout << "un message" << endl; | cout << "un message" << endl; | ||
cerr << "une erreur" << endl; | cerr << "une erreur" << endl; | ||
clog << "une information" << endl; | clog << "une information" << endl; | ||
+ | </code> | ||
=== Flux d'entrée === | === Flux d'entrée === | ||
+ | <code cpp> | ||
cin >> i; // lecture | cin >> i; // lecture | ||
char c; | char c; | ||
cin.get(c); | cin.get(c); | ||
+ | </code> | ||
=== Flux sur les chaines de caractères === | === Flux sur les chaines de caractères === | ||
+ | <code cpp> | ||
#include <sstream> | #include <sstream> | ||
istream* input; | istream* input; | ||
input = new istringstream(argv[1]) ; | input = new istringstream(argv[1]) ; | ||
+ | </code> | ||
=== Flux sur les fichiers === | === Flux sur les fichiers === | ||
+ | <code cpp> | ||
ifstream | ifstream | ||
+ | </code> | ||
===== Les fonctions numériques ==== | ===== Les fonctions numériques ==== | ||
+ | <code cpp> | ||
fsqrt() | fsqrt() | ||
+ | </code> | ||
===== A trier ===== | ===== A trier ===== | ||
+ | <code cpp> | ||
typeid(int); // évaluation à la compilation | typeid(int); // évaluation à la compilation | ||
typeid(a); // évaluation à l'éxécution | typeid(a); // évaluation à l'éxécution | ||
extern | extern | ||
namespace | namespace | ||
+ | </code> |