add Inline::SWIG test case

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8209 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2006-01-04 10:54:41 +00:00
commit bdec822db6
3 changed files with 43 additions and 0 deletions

View file

@ -0,0 +1,7 @@
all:
run:
perl runme.pl
clean:
rm -fr _Inline *~

View file

@ -0,0 +1,2 @@
This example requires the Inline::SWIG package.

View file

@ -0,0 +1,34 @@
use Inline SWIG => <<"END_CODE", SWIG_ARGS => '-c++ -shadow', CC => 'g++', LD=>'g++';
class Foo {
public:
int meaning() { return 42; };
};
END_CODE
my $o = new Foo();
print $o->meaning(),"\n";
use Inline SWIG => ' ', SWIG_INTERFACE => <<"END_CODE", SWIG_ARGS => '-c++', CC => "g++", LD => "g++";
%include std_string.i
%inline {
template <class Type>
class Bar {
Type _val;
public:
Bar(Type v) : _val(v) {}
Type meaning() { return _val; }
};
}
%template(Bar_i) Bar<int>;
%template(Bar_d) Bar<double>;
%template(Bar_s) Bar<std::string>;
END_CODE
my $o = new Bar_i(1);
print $o->meaning(),"\n";
my $o = new Bar_d(2);
print $o->meaning(),"\n";
my $o = new Bar_s("hello");
print $o->meaning(),"\n";