我正在将 C++ 前端添加到 C 库中。这个库中的一个函数回调一个带有数组和数组大小的整数的处理程序。因此,您必须提供一个 C 函数,
int handler(int argc, sometype **argv);
现在,我想允许 C++ 调用代码提供更多 C++ish 处理函数,例如,
int handler(std::vector<sometype*> args);
更改处理程序类型并不难,我只需要提供我自己的handler
,然后调用用户提供的处理程序。所以我需要创建一个std::vector
并将其内容复制argv
到其中。
但是,如果可能的话,我真的不想复制整个指针列表。不幸的是,我认为不可能告诉std::vector
其内部数组使用已分配的内存块,而且该数组是静态的,应该考虑const
。
是否有一些类似的 STL 类型std::vector
可用于以更友好的界面包装预先分配的 C 样式数组?它应该支持大小查询和迭代,类似于std::vector
.
谢谢。