2017-01-18 7 views
-1

Я использую версию Cern ROOT версии 5.34, и у меня есть проблема с использованием функций. Всегда появляется такая же ошибка сообщения.Сообщение об ошибке Cern ROOT 5.34 с использованием функций

Например (используя очень простую функцию):

******************************************* 
    *           * 
    *  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] 

Как я могу это исправить?

+3

Это может быть подсказка: 'Ограничение: функция не может быть определена в командной строке или временном файле Вам необходимо записать ее в исходный файл (tmpfile) (1)' – juanchopanza

ответ

0

Если вы использовали корень 6, который поддерживает все 11 функций C++, вы можете определить lambda функцию вместо этого, например, так

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

Вы можете назвать это как обычная функция

hello();