can't define a function which returns std::vector written in jupyter notebook (ROOT kernel)












-4














I'm using ROOT in jupyter notebook and have a problem when defining the following function:



#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;
}


The jupyter cell returns an error message as follows:




error: function definition is not allowed here



vector< string> split(string input, char delim){
^




and the split function isn't defined.
I however write the same code and can compile it by local g++, and it works normally.



Is it a known ROOT bug? I think the function definition may be interpreted as some instanciation of a vector object.



I'm looking for alternative ways to avoid this problem.



Best regards.










share|improve this question




















  • 1




    CNR : godbolt.org/z/bBED3J
    – YSC
    Nov 20 at 14:16










  • ideone please. godbolt isnt mobile friendly
    – johnathan
    Nov 20 at 14:20










  • I know it works as I tried ideone.com/7GQGFk
    – user10680480
    Nov 20 at 14:29










  • Guys, trying to reproduce in a C++ compiler is missing the point.
    – Lightness Races in Orbit
    Nov 20 at 14:40
















-4














I'm using ROOT in jupyter notebook and have a problem when defining the following function:



#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;
}


The jupyter cell returns an error message as follows:




error: function definition is not allowed here



vector< string> split(string input, char delim){
^




and the split function isn't defined.
I however write the same code and can compile it by local g++, and it works normally.



Is it a known ROOT bug? I think the function definition may be interpreted as some instanciation of a vector object.



I'm looking for alternative ways to avoid this problem.



Best regards.










share|improve this question




















  • 1




    CNR : godbolt.org/z/bBED3J
    – YSC
    Nov 20 at 14:16










  • ideone please. godbolt isnt mobile friendly
    – johnathan
    Nov 20 at 14:20










  • I know it works as I tried ideone.com/7GQGFk
    – user10680480
    Nov 20 at 14:29










  • Guys, trying to reproduce in a C++ compiler is missing the point.
    – Lightness Races in Orbit
    Nov 20 at 14:40














-4












-4








-4







I'm using ROOT in jupyter notebook and have a problem when defining the following function:



#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;
}


The jupyter cell returns an error message as follows:




error: function definition is not allowed here



vector< string> split(string input, char delim){
^




and the split function isn't defined.
I however write the same code and can compile it by local g++, and it works normally.



Is it a known ROOT bug? I think the function definition may be interpreted as some instanciation of a vector object.



I'm looking for alternative ways to avoid this problem.



Best regards.










share|improve this question















I'm using ROOT in jupyter notebook and have a problem when defining the following function:



#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;
}


The jupyter cell returns an error message as follows:




error: function definition is not allowed here



vector< string> split(string input, char delim){
^




and the split function isn't defined.
I however write the same code and can compile it by local g++, and it works normally.



Is it a known ROOT bug? I think the function definition may be interpreted as some instanciation of a vector object.



I'm looking for alternative ways to avoid this problem.



Best regards.







c++ jupyter-notebook






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 at 14:40

























asked Nov 20 at 14:13









user10680480

12




12








  • 1




    CNR : godbolt.org/z/bBED3J
    – YSC
    Nov 20 at 14:16










  • ideone please. godbolt isnt mobile friendly
    – johnathan
    Nov 20 at 14:20










  • I know it works as I tried ideone.com/7GQGFk
    – user10680480
    Nov 20 at 14:29










  • Guys, trying to reproduce in a C++ compiler is missing the point.
    – Lightness Races in Orbit
    Nov 20 at 14:40














  • 1




    CNR : godbolt.org/z/bBED3J
    – YSC
    Nov 20 at 14:16










  • ideone please. godbolt isnt mobile friendly
    – johnathan
    Nov 20 at 14:20










  • I know it works as I tried ideone.com/7GQGFk
    – user10680480
    Nov 20 at 14:29










  • Guys, trying to reproduce in a C++ compiler is missing the point.
    – Lightness Races in Orbit
    Nov 20 at 14:40








1




1




CNR : godbolt.org/z/bBED3J
– YSC
Nov 20 at 14:16




CNR : godbolt.org/z/bBED3J
– YSC
Nov 20 at 14:16












ideone please. godbolt isnt mobile friendly
– johnathan
Nov 20 at 14:20




ideone please. godbolt isnt mobile friendly
– johnathan
Nov 20 at 14:20












I know it works as I tried ideone.com/7GQGFk
– user10680480
Nov 20 at 14:29




I know it works as I tried ideone.com/7GQGFk
– user10680480
Nov 20 at 14:29












Guys, trying to reproduce in a C++ compiler is missing the point.
– Lightness Races in Orbit
Nov 20 at 14:40




Guys, trying to reproduce in a C++ compiler is missing the point.
– Lightness Races in Orbit
Nov 20 at 14:40












1 Answer
1






active

oldest

votes


















0














This board (https://github.com/QuantStack/xeus-cling/issues/40) gives me an alternative way such as using auto or typedef to replace "vector< string>" and it works.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53394937%2fcant-define-a-function-which-returns-stdvectorstring-written-in-jupyter-not%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    This board (https://github.com/QuantStack/xeus-cling/issues/40) gives me an alternative way such as using auto or typedef to replace "vector< string>" and it works.






    share|improve this answer


























      0














      This board (https://github.com/QuantStack/xeus-cling/issues/40) gives me an alternative way such as using auto or typedef to replace "vector< string>" and it works.






      share|improve this answer
























        0












        0








        0






        This board (https://github.com/QuantStack/xeus-cling/issues/40) gives me an alternative way such as using auto or typedef to replace "vector< string>" and it works.






        share|improve this answer












        This board (https://github.com/QuantStack/xeus-cling/issues/40) gives me an alternative way such as using auto or typedef to replace "vector< string>" and it works.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 21 at 13:45









        user10680480

        12




        12






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53394937%2fcant-define-a-function-which-returns-stdvectorstring-written-in-jupyter-not%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Costa Masnaga

            Fotorealismo

            Sidney Franklin