Mam funkcji, która jest wielobranżowe podjąć w ciągu znaków, a następnie przekazać je do mojego C++ funkcja add_node()
Jak przekonwertować std :: string do v8 Local <string>
Handle<Value> Graph::add_node(const v8::Arguments& args)
{
HandleScope scope;
Graph* graph = ObjectWrap::Unwrap<Graph>(args.This());
graph->add_node(args[0]->ToString());
std::cout << "In add node \n";
}
Jednak mam problem, ponieważ wszystkie z moich argumentów są w jakimś templetes v8 i nie mogę dowiedzieć się, jak przełączać się między nimi. Model documentation również wyraźnie tego nie określa.
Kompilator daje mi ten błąd
../graph/binding.cc:52:10: error: no matching member function for call to
'add_node'
graph->add_node(args[0]->ToString());
~~~~~~~^~~~~~~~
../graph/directed_graph.h:27:7: note: candidate function not viable: no known
conversion from 'Local<v8::String>' to 'std::string &' (aka
'basic_string<char> &') for 1st argument;
void add_node(std::string & currency);
Jak mogę przełączać Local<v8::String>
i std::string &
?
Późniejsze wersje v8 wymagają nieco innego podejścia: '' 'String :: NewFromUtf8 (isolate, something.c_str())' '' – Richard