тип шаблона как элемент данных структуры в SWIG

Я пишу оболочку PHP для библиотеки C++ с помощью SWIG, но у меня возникают проблемы с использованием структуры с экземпляром типа шаблона в качестве члена данных.

Предположим, у меня есть следующий заголовочный файл:

template <typename>
struct myvector
{
};

struct S
{
    myvector<int> v;
};

myvector<int> foo();
S bar();

и файл интерфейса:

%module test
%{
#include "test.hpp"
%}

%include "test.hpp"
%template(IntVec) myvector<int>;

Когда я пытаюсь использовать функцию, которая напрямую возвращает myvector, она работает нормально:

$v1 = test::foo();

Однако, когда я пытаюсь использовать функцию, которая возвращает объект Sи пытается получить доступ к его члену данных, который имеет типmyvector:

$s = test::bar();
$v2 = $s->v;

Я получаю следующую ошибку во время выполнения:

PHP Fatal error:  Class 'myvectorT_int_t' not found in test.php on line 145

Я, вероятно, что-то упустил из моего файла интерфейса, но я не знаю, что. Кто-нибудь может помочь?

6
задан HC4 - reinstate Monica 7 May 2012 в 21:09
поделиться