Сообщение об ошибке 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 (v5-34-36@v5-34-36, 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]
Как я могу это исправить?
1 ответ
Если бы вы использовали root 6, который поддерживает все функции C++11, вы могли бы вместо этого определить лямбда- функцию, вот так
auto hello = [](){ cout << "Hi!" << endl; };
Затем вы можете вызвать его как обычную функцию
hello();