Макет функции, которая имеет выходной параметр типа const char **

Мне нужно смоделировать «класс» c api, который в основном представляет собой структуру, содержащую набор указателей на функции. Вот мой подход. По вашему мнению, это действительно так или вы можете предложить лучший подход?

typedef struct MockCApi: public CApi
{
MockCApi()
{
// Hook in function
getName = nameFunc;
}

static void reset()
{
handle.clear();
name.clear();
returnValue.clear();
}

static ReturnType nameFunc(HandleType _handle, const char** _name)
{
handle.push_back(_handle);

poppedNames.push_back(name.front());
*_name = poppedNames.back().c_str();

ReturnType _returnValue = returnValue.front();
returnValue.pop_front();
return _returnValue;
}

static std::deque<HandleType> handle;
static std::deque<std::string> name;
static std::deque<ReturnType> returnValue;
private:
static std::deque<std::string> poppedNames;
};

ОБНОВИТЬ

Другой подход, который я имею в виду, заключается в использовании std::vectorи std::vector::iteratorвместо std::queue«S. Итератор будет увеличиваться каждый раз, когда я «использую» значение в векторе.

0

Решение

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

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

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