Я создаю оберток с помощью SWIG для питона для моей библиотеки программного обеспечения и у меня есть следующие функции:SWIG: питон обратного вызова с шаблоном функции и общий указатель в качестве возвращаемого значения
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. В настоящее время у меня есть в файле интерфейса:
% template (jobme) JobT; % "boost_shared_ptr.i" % shared_ptr (jobme)
% template (waitforme) Клиент :: WaitForJob;
Шаблон функции waitforme возвращает указатель на объект swig python. Это правильно, но я хочу, чтобы он был таким же, как указатель jobme.
Может кто-нибудь указать, возможно ли это?