Я использую ROOT в ноутбуке Jupyter и у меня возникла проблема при определении следующей функции:
#include <vector>
#include <string>
#include <iostream>
//---cell separation---
using namespace std;
//---cell separation---
vector<string> split(string input, char delim){
vector<string> ret;
string temp;
for(char letter:input){
if(letter!=delim){
temp+= letter;
}else{
ret.push_back(temp);
temp.clear();
}
}
ret.push_back(temp);
return ret;
}
Ячейка jupyter возвращает сообщение об ошибке следующим образом:
ошибка: определение функции здесь не разрешено
вектор< string> split (ввод строки, разделитель символов) {
^
и функция разделения не определена.
Однако я пишу тот же код и могу скомпилировать его локальным g ++, и он работает нормально.
Это известная ошибка ROOT? Я думаю, что определение функции может быть интерпретировано как некое воплощение векторного объекта.
Я ищу альтернативные способы избежать этой проблемы.
С наилучшими пожеланиями.
Это доска (https://github.com/QuantStack/xeus-cling/issues/40) дает мне альтернативный способ, такой как использование auto или typedef для замены «vector< строка> «и это работает.
Других решений пока нет …