не могу определить функцию, которая возвращает std :: vector <string>, записанную в блокноте jupyter (ядро ROOT) - PullRequest
0 голосов
/ 20 ноября 2018

Я использую 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 возвращает сообщение об ошибке следующим образом:

error: определение функции здесь не разрешено

vector split (ввод строки, разделитель символов) {^

, а функция split не определена.Однако я пишу тот же код и могу скомпилировать его с помощью локального g ++, и он работает нормально.

Это известная ошибка ROOT?Я думаю, что определение функции может быть интерпретировано как некий экземпляр векторного объекта.

Я ищу альтернативные способы избежать этой проблемы.

С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 21 ноября 2018

Эта доска (https://github.com/QuantStack/xeus-cling/issues/40) дает мне альтернативный способ, такой как использование auto или typedef для замены "vector ", и это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...