2017-01-18 3 views
-1

J'utilise la version 5.34 de Cern ROOT et j'ai un problème pour utiliser les fonctions. La même erreur de message apparaît toujours.Message d'erreur Cern ROOT 5.34 utilisant les fonctions

Par exemple (en utilisant une fonction très simple):

******************************************* 
    *           * 
    *  W E L C O M E to R O O T  * 
    *           * 
    * Version 5.34/36  5 April 2016 * 
    *           * 
    * You are welcome to visit our Web site * 
    *   http://root.cern.ch   * 
    *           * 
    ******************************************* 

ROOT 5.34/36 ([email protected], Apr 05 2016, 10:25:45 on win32) 

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010 
Type ? for help. Commands must be C++ statements. 
Enclose multiple statements between { }. 
root [0] #include <iostream> 
Note: File "iostream" already loaded 
root [1] using namespace std; 
root [2] void hello(){cout << "Hi!" << endl;} 
Limitation: Function can not be defined in a command line or a tempfile 
You need to write it in a source file (tmpfile)(1) 
*** Interpreter error recovered *** 
root [3] 

Comment puis-je résoudre ce problème?

+3

Cela peut être un indice: 'Limitation: la fonction ne peut pas être définie dans une ligne de commande ou un fichier temp Vous devez l'écrire dans un fichier source (tmpfile) (1)' – juanchopanza

Répondre

0

Si vous avez utilisé la racine 6, qui prend en charge les 11 fonctionnalités C++, vous pouvez définir une fonction au lieu lambda, comme si

auto hello = [](){ cout << "Hi!" << endl; }; 

Vous pouvez alors l'appeler comme une fonction régulière

hello();