Как передать вектор & lt; T & gt; между границей библиотеки / модуля, используя шаблон песочных часов?

Этот вопрос связан с докладом Стефана Дю Туа о песочных часах. Это отличный разговор, действительно полезный для авторов библиотек.

Ссылка на Youtube: https://youtu.be/PVYdHDm0q6Y

Slideshare Link: http://www.slideshare.net/StefanusDuToit/cpp-con-2014-hourglass-interfaces-for-c-apis

Хорошо, вот вопрос:

Скажи, что я должен пройти std::vector<MyObject> через границу библиотеки. Что является лучшим способом сделать это, используя шаблон песочных часов. Я обеспокоен производительностью, а также сохранением чистоты интерфейса. Ниже приведен набор примеров интерфейсов, которые я хочу реализовать.

Клиентский интерфейс C ++:

void MyLibraryClass::DoSomething(const std::vector<MyObject>& objs);

C интерфейс:

???? (Not sure what is the best practice here)

Интерфейс внутренней библиотеки C ++:

MyInternalLibraryClass::DoSomething(const std::vector<MyObjectImpl>& objs);

Надеюсь, это объясняет мой вопрос.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]