Я создаю оболочки, используя SWIG для python для моей библиотеки программного обеспечения, и у меня есть следующая функция:
template<class PR>
boost::shared_ptr<JobT<PR> > Client::WaitForJob() {
boost::shared_ptr<JobT<PR> > job;
while (!job.get()) {
list<boost::shared_ptr<Job> > jobs = GetJobs(p_jobName, p_jobID, "", JobT<PR>::New);
while (jobs.size() > 0) {
job = boost::dynamic_pointer_cast<JobT<PR> >(jobs.front());
jobs.pop_front();
if (ClaimJob(job)) return job;
else job.reset();
}
}
return job;
}
В этом случае я могу создать класс для JobT, и я также использовал boos_pointer.
В настоящее время в моем файле интерфейса есть следующее:
% шаблона (jobme) JobT;
% включают "boost_shared_ptr.i"
% Shared_ptr (jobme)
% template (waitforme) Client :: WaitForJob;
Шаблон функции waitforme возвращает указатель на объект Python Swig. Это правильно, но я хочу, чтобы он был таким же, как указатель jobme.
Может ли кто-нибудь указать, возможно ли это?