// http://sdz.tdct.org/sdz/introduction-a-c-2011-c-0x.html #include #include #include #include #include using namespace std; //------------------------------------- void afficherListe_V1(std::initializer_list liste) { for(initializer_list::iterator i(liste.begin()) ; i != liste.end() ; ++i) { cout << "V1: " << *i << endl; } } void afficherListe_V2(std::initializer_list liste) { for(auto &i : liste) { cout << "V2: " << i << endl; } } //------------------------------------- template T Plus1(T v) { return v+1; } template auto copyParam(T v) -> decltype(Plus1(v)) { return Plus1(v); } //------------------------------------- int main() { double D = 1.2; auto DD = copyParam(D); int I = 2; auto II = copyParam(I); cout << DD << " " << II << endl; cout << "----------------------" << endl; //////////// /////////// //////////// construction int /////////// //////////// /////////// int unInt1(1), unInt2(2); cout << unInt1 << " " << unInt2 << endl; cout << "----------------------" << endl; //////////// /////////// //////////// for /////////// //////////// /////////// // Avec ou sans ref & int tableau[5] = {1, 2, 3, 4, 5}; for(int x : tableau) { cout << x << " "; } cout << endl; for(int x : tableau) { x++; } for(int x : tableau) { cout << x << " "; } cout << endl; for(int &x : tableau) { x++; } for(int x : tableau) { cout << x << " "; } cout << endl; cout << "----------------------" << endl; //////////// /////////// //////////// enum class /////////// //////////// /////////// enum class Direction { Haut, Droite, Bas, Gauche }; Direction direction = Direction::Haut; int nombre = 5 + static_cast(direction); cout << nombre << endl; cout << "----------------------" << endl; //////////// /////////// //////////// vector sans bug > > /////////// //////////// + init(utilisateur) /////////// vector> VectNombres = {{0,1,2}, {3,4,5,6}, {7,8,9}}; for(vector &v : VectNombres) { for(int &x : v) { cout << x << " "; } } cout << endl; cout << "----------------------" << endl; //////////// /////////// //////////// init(utilisateur) /////////// //////////// + auto /////////// map nombres = { { 1, "un" }, { 2, "deux" }, { 3, "trois" } }; cout << nombres[1] << endl; cout << "--" << endl; for (pair n : nombres) { cout << n.first << " = " << n.second << "; "; } cout << endl; for (auto n : nombres) { cout << n.first << " = " << n.second << "; "; } cout << endl; cout << "----------------------" << endl; //////////// /////////// //////////// init(createur) /////////// //////////// + auto /////////// afficherListe_V1({ 1, 2, 3, 4, 5 }); afficherListe_V2({ 1, 2, 3, 4, 5 }); cout << "----------------------" << endl; return 0; }