catalog
1. Problem description 2. Cause analysis 3. Solution
1. Problem description
When running the program, the compiler reports an error:
error: cannot pass objects of non-trivially-copyable type ‘std::string {aka struct std::basic_ string}’ through ‘…’ |
2. Cause analysis
The error is displayed on this line:
printf("%c %s %lld %lld\n", p, edges, ver, edge);
Where edges is of string type.
Grammar:
const char *c_ str();c_ Str() function returns a pointer to a normal C string, the content of which is the same as that of this string string. In order to be compatible with C, there is no string type in C, so it must pass the member function C of string class object_ Str () converts a string object to a string style in C.
3. Solutions
In use, add C_ str();
printf("%c %s %lld %lld\n", p, edges.c_str(), ver, edge);