Nodejs Addon - передача строки регулярного выражения в C++

Я пытаюсь выяснить, как создать регулярное выражение в C++. Я хочу превратить строку, переданную из JavaScript в C++, в регулярное выражение.

У меня есть это:

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

но это не скомпилируется, с этой ошибкой:

../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);

кто-нибудь знает, как я могу объявить / создать regex учитывая это v8::String?

1 ответ

Я не уверен в этом, но, может быть, вы только что объявили регулярное выражение, но не инициализировали его? Вы пытались делать V8... regexin = new V8... (args...)?

Другие вопросы по тегам