2017-01-03 1 views
1

Ich versuche herauszufinden, wie man einen regulären Ausdruck in C++ erstellen. Ich möchte eine Zeichenfolge, die von JavaScript an C++ übergeben wird, in einen regulären Ausdruck umwandeln.Nodejs Addon - übergeben Regex-Zeichenfolge an C++

Ich habe dies:

std::regex re; 

    if (!args[1]->IsString()) { 
    Nan::ThrowTypeError("Second argument to 'replace-line' must be a string regular expression."); 
    return; 
    } 
    else{ 
    v8::String::Utf8Value regexin(args[1]->ToString()); 
    re(*regexin); 
    } 

aber nicht kompilieren, mit diesem Fehler:

../hello.cpp: In function ‘void Method(const v8::FunctionCallbackInfo<v8::Value>&)’: 
../hello.cpp:50:16: error: no match for call to ‘(regex_t {aka re_pattern_buffer}) (char*)’ 
    re(*regexin); 

jemand weiß, wie ich erklären kann/erstellen regex diese v8::String gegeben?

+1

Es kompiliert für mich (Knoten 7.0.0, cmake-js 3.3.1). Außerdem ist 'regexin (val.As () -> GetSource())' vielleicht expressiver – pergy

Antwort

1

Ich bin mir nicht sicher, aber vielleicht haben Sie gerade Regexin deklariert, aber nicht initialisiert? Haben Sie versucht, V8... regexin = new V8... (args...) zu tun?

Verwandte Themen