我正在使用一个函数,它产生一些数据作为std::vector<char>另一个函数(想想遗留API),它处理数据并获取数据const char *, size_t len.有没有办法从向量中分离数据,以便在调用处理函数之前向量可以超出范围而不复制向量中包含的数据(这就是我所说的分离意味着).
一些代码草图来说明场景:
// Generates data
std::vector<char> generateSomeData();
// Legacy API function which consumes data
void processData( const char *buf, size_t len );
void f() {
char *buf = 0;
size_t len = 0;
{
std::vector<char> data = generateSomeData();
buf = &data[0];
len = data.size();
}
// How can I ensure that 'buf' points to valid data at this point, so that the following
// line is okay, without …Run Code Online (Sandbox Code Playgroud)