Как вызвать неуправляемую функцию C ++ с std :: vector в качестве параметра из C #?

У меня есть интерфейс C # и C ++ по соображениям производительности. Теперь я хотел бы вызвать функцию C ++, например:

void findNeighbors(Point p, std::vector<Point> &neighbors, double maxDist);

Я хотел бы иметь функцию-оболочку C #, например:

List<Point> FindNeigbors(Point p, double maxDist);

Я мог бы передать плоский массив, например Point [], в неуправляемую DLL C ++, но проблема в том, что я не знаю, сколько памяти выделить, потому что я не знаю, сколько элементов вернет функция ...

Есть ли элегантный способ справиться с этим без проблем с утечками памяти?

Спасибо за вашу помощь!

Вениамин

Ответы на вопрос(4)

Ваш ответ на вопрос