Je viens vous faire part d'une découverte que je viens de faire, et qui m'a ébahie ! Il existe des (au moins un) interpréteurs C++ !
C'est basé sur LLVM (avec compilation JIT du code produit), et ça s'apelle cling. Et ça donne des trucs fun comme ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ****************** CLING ****************** * Type C++ code and press enter to run it * * Type .q to exit * ******************************************* [cling]$ #include <iostream> [cling]$ using namespace std; [cling]$ cout < 4 + 65.9 < endl; input_line_6:2:7: error: invalid operands to binary expression ('ostream' (aka 'basic_ostream<char>') and 'double') cout < 4 + 65.9 < endl; ~~~~ ^ ~~~~~~~~ [cling]$ cout << 4 + 65.9 << endl; 69.9 [cling]$ #include <cmath> [cling]$ cout << sin(tan(4)) << endl; 0.915931 [cling]$ for(int i=0; i<10; i++){ [cling]$ ? cout << i << endl; [cling]$ ? } 0 1 2 3 4 5 6 7 8 9 [cling]$ |
Donc il semblerai que l'on puisse appeller des bibliothèques sans problèmes, mais pas définir une fonction.
1 2 3 4 5 6 | [cling]$ int test(int a) { [cling]$ ? return a; [cling]$ ? } input_line_15:2:18: error: function definition is not allowed here int test(int a) { ^ |
Juste pour savoir, vous connaissez d'autres projets dans le même style (pour du C++ ou du C) ? En vrai, ça pourrait être assez pratique pour commencer l'apprentissage du C++ d'avoir un interpréteur à portée de main. Je sens que je vais me remettre au C++ moi
+0
-0