diff options
author | Xavier Delacour <xavier.delacour@gmail.com> | 2008-03-05 04:35:34 +0000 |
---|---|---|
committer | Xavier Delacour <xavier.delacour@gmail.com> | 2008-03-05 04:35:34 +0000 |
commit | 4d283f59c3315fe129d16b5d08f5d0bf7ea25460 (patch) | |
tree | 29e6e013b004174284d2c531444e21eb3312eba3 /Examples/test-suite | |
parent | 25fd00698b46c7954c971c22212780d42cf50b3e (diff) | |
download | swig-4d283f59c3315fe129d16b5d08f5d0bf7ea25460.tar.gz |
Fix ~15 tests, minor doc fixes, improve STL support.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10298 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Examples/test-suite')
20 files changed, 261 insertions, 133 deletions
diff --git a/Examples/test-suite/namespace_typemap.i b/Examples/test-suite/namespace_typemap.i index 93cc5c400..e4e0af905 100644 --- a/Examples/test-suite/namespace_typemap.i +++ b/Examples/test-suite/namespace_typemap.i @@ -22,12 +22,12 @@ namespace test { } }; - /* A minimalistic complex class */ - class complex { + /* A minimalistic test_complex class */ + class test_complex { double re; double im; public: - complex(double r = 0, double i = 0) { + test_complex(double r = 0, double i = 0) { re = r; im = i; } @@ -44,16 +44,29 @@ namespace test { /* SWIG interface tests */ #ifdef SWIGPYTHON -%typemap(in) test::complex * { +%typemap(in) test::test_complex * { if (PyComplex_Check($input)) { - $1 = new complex(PyComplex_RealAsDouble($input), + $1 = new test_complex(PyComplex_RealAsDouble($input), PyComplex_ImagAsDouble($input)); } else { - PyErr_SetString(PyExc_TypeError,"Expected complex.\n"); + PyErr_SetString(PyExc_TypeError,"Expected test_complex.\n"); return NULL; } } -%typemap(freearg) test::complex * { +%typemap(freearg) test::test_complex * { + delete $1; +} +#endif +#ifdef SWIGOCTAVE +%typemap(in) test::test_complex * { + if ($input.is_complex_scalar()) { + $1 = new test_complex($input.complex_value().real(), + $input.complex_value().imag()); + } else { + error("Expected test_complex."); + } +} +%typemap(freearg) test::test_complex * { delete $1; } #endif @@ -68,6 +81,14 @@ namespace test { delete $1; } #endif +#ifdef SWIGOCTAVE + %typemap(in) string_class * { + $1 = new string_class($input.string_value().c_str()); + } + %typemap(freearg) string_class * { + delete $1; + } +#endif #ifdef SWIGRUBY %typemap(in) string_class * { $1 = new string_class(STR2CSTR($input)); @@ -81,26 +102,26 @@ namespace test { %inline %{ namespace test { class string_class; - class complex; + class test_complex; /* Functions in the namespace itself */ char *stest1(string_class *s) { return s->c_str(); } - double ctest1(complex *c) { + double ctest1(test_complex *c) { return c->real(); } } namespace test2 { using test::string_class; - using test::complex; + using test::test_complex; /* Functions in another namespace */ char *stest2(string_class *s) { return s->c_str(); } - double ctest2(complex *c) { + double ctest2(test_complex *c) { return c->real(); } } @@ -111,7 +132,7 @@ namespace test { char *stest3(string_class *s) { return s->c_str(); } - double ctest3(complex *c) { + double ctest3(test_complex *c) { return c->real(); } } @@ -122,7 +143,7 @@ namespace test { char *stest4(string_class *s) { return s->c_str(); } - double ctest4(complex *c) { + double ctest4(test_complex *c) { return c->real(); } } @@ -133,7 +154,7 @@ namespace test { char *stest5(string_class *s) { return s->c_str(); } - double ctest5(complex *c) { + double ctest5(test_complex *c) { return c->real(); } } @@ -141,35 +162,35 @@ namespace test { char *stest6(test::string_class *s) { return s->c_str(); } - double ctest6(test::complex *c) { + double ctest6(test::test_complex *c) { return c->real(); } char *stest7(test2::string_class *s) { return s->c_str(); } - double ctest7(test2::complex *c) { + double ctest7(test2::test_complex *c) { return c->real(); } char *stest8(test3::string_class *s) { return s->c_str(); } - double ctest8(test3::complex *c) { + double ctest8(test3::test_complex *c) { return c->real(); } char *stest9(test4::string_class *s) { return s->c_str(); } - double ctest9(test4::complex *c) { + double ctest9(test4::test_complex *c) { return c->real(); } char *stest10(test5::string_class *s) { return s->c_str(); } - double ctest10(test5::complex *c) { + double ctest10(test5::test_complex *c) { return c->real(); } @@ -178,17 +199,17 @@ namespace test { char *stest11(test11::string_class *s) { return s->c_str(); } - double ctest11(test11::complex *c) { + double ctest11(test11::test_complex *c) { return c->real(); } using namespace test2; - using test::complex; + using test::test_complex; char *stest12(string_class *s) { return s->c_str(); } - double ctest12(complex *c) { + double ctest12(test_complex *c) { return c->real(); } %} @@ -203,6 +224,14 @@ namespace Split { } } #endif +#ifdef SWIGOCTAVE + %typemap(in) PosInteger { + $1 = $input.long_value(); + if ($1 < 0) { + error("domain error"); + } + } +#endif #ifdef SWIGRUBY %typemap(in) PosInteger { $1 = NUM2INT($input); diff --git a/Examples/test-suite/octave/Makefile.in b/Examples/test-suite/octave/Makefile.in index 4feca8cd6..eff9c0c57 100644 --- a/Examples/test-suite/octave/Makefile.in +++ b/Examples/test-suite/octave/Makefile.in @@ -13,8 +13,14 @@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ -#CPP_TEST_CASES += - +# CPP_TEST_CASES += + +CPP_TEST_BROKEN += \ + implicittest \ + li_implicit \ + li_std_map \ + li_std_set \ + li_std_stream #C_TEST_CASES += diff --git a/Examples/test-suite/octave/arrays_global_runme.m b/Examples/test-suite/octave/arrays_global_runme.m index 95a49088c..619d381b0 100644 --- a/Examples/test-suite/octave/arrays_global_runme.m +++ b/Examples/test-suite/octave/arrays_global_runme.m @@ -1,18 +1,19 @@ arrays_global -arrays_global.array_i = arrays_global.array_const_i; +arrays_global.cvar.array_i = arrays_global.cvar.array_const_i; -BeginString_FIX44a; -BeginString_FIX44b; -BeginString_FIX44c; -BeginString_FIX44d; -BeginString_FIX44d; -BeginString_FIX44b ="12"'\0'"45"; -BeginString_FIX44b; -BeginString_FIX44d; -BeginString_FIX44e; -BeginString_FIX44f; +cvar.BeginString_FIX44a; +cvar.BeginString_FIX44b; +cvar.BeginString_FIX44c; +cvar.BeginString_FIX44d; +cvar.BeginString_FIX44d; +cvar.BeginString_FIX44b = strcat("12","\0","45"); +cvar.BeginString_FIX44b; +cvar.BeginString_FIX44d; +cvar.BeginString_FIX44e; +cvar.BeginString_FIX44f; test_a("hello","hi","chello","chi"); test_b("1234567","hi"); + diff --git a/Examples/test-suite/octave/constover_runme.m b/Examples/test-suite/octave/constover_runme.m index b6822fc84..febcdae69 100644 --- a/Examples/test-suite/octave/constover_runme.m +++ b/Examples/test-suite/octave/constover_runme.m @@ -5,28 +5,28 @@ if (!strcmp(p,"test")) error("test failed!") endif -p = constover.test_pconst("test") +p = constover.test_pconst("test"); if (!strcmp(p,"test_pconst")) error("test_pconst failed!") endif -f = constover.Foo() -p = f.test("test") +f = constover.Foo(); +p = f.test("test"); if (!strcmp(p,"test")) error("member-test failed!") endif -p = f.test_pconst("test") +p = f.test_pconst("test"); if (!strcmp(p,"test_pconst")) error("member-test_pconst failed!") endif -p = f.test_constm("test") +p = f.test_constm("test"); if (!strcmp(p,"test_constmethod")) error("member-test_constm failed!") endif -p = f.test_pconstm("test") +p = f.test_pconstm("test"); if (!strcmp(p,"test_pconstmethod")) error("member-test_pconstm failed!") endif diff --git a/Examples/test-suite/octave/implicittest.i b/Examples/test-suite/octave/implicittest.i new file mode 100644 index 000000000..91205aafa --- /dev/null +++ b/Examples/test-suite/octave/implicittest.i @@ -0,0 +1,68 @@ +%module(naturalvar="1") implicittest + +%implicitconv; + +%inline +{ + struct B { }; +} + +%inline +{ + struct A + { + int ii; + A(int i) { ii = 1; } + A(double d) { ii = 2; } + A(const B& b) { ii = 3; } + explicit A(char *s) { ii = 4; } + + int get() const { return ii; } + + }; + + int get(const A& a) { return a.ii; } + + template <class T> + struct A_T + { + int ii; + A_T(int i) { ii = 1; } + A_T(double d) { ii = 2; } + A_T(const B& b) { ii = 3; } + explicit A_T(char *s) { ii = 4; } + + int get() const { return ii; } + + }; +} + +%inline +{ + struct Foo + { + int ii; + Foo(){ ii = 0;} + Foo(int){ ii = 1;} + Foo(double){ ii = 2;} + explicit Foo(char *s){ii = 3;} + Foo(const Foo& f){ ii = f.ii;} + + }; + + struct Bar + { + int ii; + Foo f; + Bar() {ii = -1;} + Bar(const Foo& ff){ ii = ff.ii;} + }; + + + int get_b(const Bar&b) { return b.ii; } + + Foo foo; + +} + +%template(A_int) A_T<int>; diff --git a/Examples/test-suite/octave/langobj_runme.m b/Examples/test-suite/octave/langobj_runme.m deleted file mode 100644 index a18905ec0..000000000 --- a/Examples/test-suite/octave/langobj_runme.m +++ /dev/null @@ -1,12 +0,0 @@ -langobj - - -x ="hello" -rx = sys.getrefcount(x) -v = identity(x) -rv = sys.getrefcount(v) -if v != x: - error - -if rv - rx != 1: - error diff --git a/Examples/test-suite/octave/li_attribute_runme.m b/Examples/test-suite/octave/li_attribute_runme.m index 49d488b0a..c66e27c5b 100644 --- a/Examples/test-suite/octave/li_attribute_runme.m +++ b/Examples/test-suite/octave/li_attribute_runme.m @@ -47,9 +47,9 @@ if (b.a.c != 3) endif -myFoo = li_attribute.MyFoo; +myFoo = li_attribute.MyFoo(); myFoo.x = 8; -myClass = li_attribute.MyClass; +myClass = li_attribute.MyClass(); myClass.Foo = myFoo; if (myClass.Foo.x != 8) error diff --git a/Examples/test-suite/octave/li_boost_shared_ptr_runme.m b/Examples/test-suite/octave/li_boost_shared_ptr_runme.m index 358b55d0a..ca09316bc 100644 --- a/Examples/test-suite/octave/li_boost_shared_ptr_runme.m +++ b/Examples/test-suite/octave/li_boost_shared_ptr_runme.m @@ -10,10 +10,10 @@ function main() li_boost_shared_ptr.cvar.debug_shared = debug; # Change loop count to run for a long time to monitor memory - loopCount = 1 #5000 + loopCount = 1; #5000 for i=0:loopCount, self.runtest(); - endif + endfor if (li_boost_shared_ptr.Klass.getTotal_count() != 0) error("Klass.total_count=", li_boost_shared_ptr.Klass.getTotal_count()) @@ -454,10 +454,10 @@ function runtest() # templates pid = li_boost_shared_ptr.PairIntDouble(10, 20.2) - if (pid.baseVal1 != 20 or pid.baseVal2 != 40.4) + if (pid.baseVal1 != 20 || pid.baseVal2 != 40.4) error("Base values wrong") endif - if (pid.val1 != 10 or pid.val2 != 20.2) + if (pid.val1 != 10 || pid.val2 != 20.2) error("Derived Values wrong") endif endfunction diff --git a/Examples/test-suite/octave/li_std_string.i b/Examples/test-suite/octave/li_std_string.i new file mode 100644 index 000000000..822d713c4 --- /dev/null +++ b/Examples/test-suite/octave/li_std_string.i @@ -0,0 +1,55 @@ +%module li_std_string + +%naturalvar A; + + +%include <std_basic_string.i> +%include <std_string.i> + + +%inline %{ + +struct A : std::string +{ + A(const std::string& s) : std::string(s) + { + } +}; + +struct B +{ + B(const std::string& s) : cname(0), name(s), a(s) + { + } + + char *cname; + std::string name; + A a; + +}; + + +const char* test_ccvalue(const char* x) { + return x; +} + +char* test_cvalue(char* x) { + return x; +} + +std::basic_string<char> test_value_basic1(std::basic_string<char> x) { + return x; +} + +std::basic_string<char,std::char_traits<char> > test_value_basic2(std::basic_string<char,std::char_traits<char> > x) { + return x; +} + +std::basic_string<char,std::char_traits<char>,std::allocator<char> > test_value_basic3(std::basic_string<char,std::char_traits<char>,std::allocator<char> > x) { + return x; +} + +%} + +%include ../li_std_string.i + diff --git a/Examples/test-suite/octave/namespace_typemap_runme.m b/Examples/test-suite/octave/namespace_typemap_runme.m index 2e4990fb9..ca3730773 100644 --- a/Examples/test-suite/octave/namespace_typemap_runme.m +++ b/Examples/test-suite/octave/namespace_typemap_runme.m @@ -48,8 +48,8 @@ if (!strcmp(stest12("hello"),"hello")) error endif -c = complex(2,3) -r = c.real +c = complex(2,3); +r = real(c); if (ctest1(c) != r) error diff --git a/Examples/test-suite/octave/overload_rename_runme.m b/Examples/test-suite/octave/overload_rename_runme.m index c266988c2..4a416cfbc 100644 --- a/Examples/test-suite/octave/overload_rename_runme.m +++ b/Examples/test-suite/octave/overload_rename_runme.m @@ -3,6 +3,6 @@ overload_rename f = overload_rename.Foo(1); f = overload_rename.Foo(1,1); -f = overload_rename.Foo_int(1,1); -f = overload_rename.Foo_int(1,1,1); +f = overload_rename.new_Foo_int(1,1); +f = overload_rename.new_Foo_int(1,1,1); diff --git a/Examples/test-suite/octave/refcount_runme.m b/Examples/test-suite/octave/refcount_runme.m index 2eb8eeed0..3ce5bcda2 100644 --- a/Examples/test-suite/octave/refcount_runme.m +++ b/Examples/test-suite/octave/refcount_runme.m @@ -13,22 +13,3 @@ if (a.ref_count() != 3) endif -rca = b2.get_rca(); -b3 = B.create(rca); - -if (a.ref_count() != 5) - error("This program will crash... now") -endif - - -v = vector_A(2); -v(0) = a; -v(1) = a; - -x = v(0); -clear v; - - - - - diff --git a/Examples/test-suite/octave/template_default_arg_runme.m b/Examples/test-suite/octave/template_default_arg_runme.m index 62219dc77..e50066248 100644 --- a/Examples/test-suite/octave/template_default_arg_runme.m +++ b/Examples/test-suite/octave/template_default_arg_runme.m @@ -2,7 +2,7 @@ template_default_arg helloInt = template_default_arg.Hello_int(); -helloInt.foo(template_default_arg.Hello_int.hi); +helloInt.foo(template_default_arg.Hello_int_hi); x = template_default_arg.X_int(); @@ -18,7 +18,7 @@ endif -y = template_default_arg.Y_unsigned() +y = template_default_arg.Y_unsigned(); if (y.meth(20.0, 200) != 200) error("Y_unsigned test 1 failed") endif @@ -33,7 +33,7 @@ endif x = template_default_arg.X_longlong(); x = template_default_arg.X_longlong(20.0); -x = template_default_arg.X_longlong(20.0, 200L); +x = template_default_arg.X_longlong(20.0, 200); x = template_default_arg.X_int(); @@ -49,7 +49,7 @@ x = template_default_arg.X_hello_unsigned(20.0, template_default_arg.Hello_int() y = template_default_arg.Y_hello_unsigned(); y.meth(20.0, template_default_arg.Hello_int()); y.meth(template_default_arg.Hello_int()); -y.meth() +y.meth(); diff --git a/Examples/test-suite/octave/template_type_namespace_runme.m b/Examples/test-suite/octave/template_type_namespace_runme.m index 1974a3be7..bbdcdef5e 100644 --- a/Examples/test-suite/octave/template_type_namespace_runme.m +++ b/Examples/test-suite/octave/template_type_namespace_runme.m @@ -1,7 +1,5 @@ template_type_namespace -if (!strcmp(typeinfo(foo()(0)),typeinfo(""))) - error -endif +assert(strcmp(foo()(1),"foo")); diff --git a/Examples/test-suite/preproc.i b/Examples/test-suite/preproc.i index 3afbd90c5..164d1a1d1 100644 --- a/Examples/test-suite/preproc.i +++ b/Examples/test-suite/preproc.i @@ -228,6 +228,7 @@ This testcase tests operators for defines +#ifndef SWIGOCTAVE #ifdef __cplusplus #define %mangle(...) #@__VA_ARGS__ @@ -245,6 +246,7 @@ inline const char* mangle ## #@__VA_ARGS__ () { } #endif +#endif #if defined (__cplusplus) \ diff --git a/Examples/test-suite/python/template_typedef_runme.py b/Examples/test-suite/python/template_typedef_runme.py index e2efb7246..4b3970593 100644 --- a/Examples/test-suite/python/template_typedef_runme.py +++ b/Examples/test-suite/python/template_typedef_runme.py @@ -1,7 +1,7 @@ from template_typedef import * d = make_Identity_float() -c = make_Identity_real() +c = make_Identity_reald() try: @@ -18,14 +18,14 @@ except: raise RuntimeError try: - f = make_Multiplies_real_real_real_real(c, c) + f = make_Multiplies_reald_reald_reald_reald(c, c) a = f.this except: print f, "is not an instance" raise RuntimeError try: - g = make_Multiplies_float_float_real_real(d, c) + g = make_Multiplies_float_float_reald_reald(d, c) a = g.this except: print g, "is not an instance" diff --git a/Examples/test-suite/refcount.i b/Examples/test-suite/refcount.i index 5dfd951d3..8352b508a 100644 --- a/Examples/test-suite/refcount.i +++ b/Examples/test-suite/refcount.i @@ -55,7 +55,7 @@ %} -#ifdef SWIGPYTHON +#if defined(SWIGPYTHON) %extend_smart_pointer(RCPtr<A>); %template(RCPtr_A) RCPtr<A>; #endif @@ -96,7 +96,7 @@ %} -#ifdef SWIGPYTHON +#if defined(SWIGPYTHON) || defined(SWIGOCTAVE) %include <std_vector.i> %template(vector_A) std::vector<RCPtr<A> >; diff --git a/Examples/test-suite/template_arg_replace.i b/Examples/test-suite/template_arg_replace.i index 4e69fa351..25274c9ab 100644 --- a/Examples/test-suite/template_arg_replace.i +++ b/Examples/test-suite/template_arg_replace.i @@ -1,14 +1,14 @@ %module template_arg_replace -%warnfilter(SWIGWARN_RUBY_WRONG_NAME) Matrix<float, 3, 3>; /* Ruby, wrong class name */ +%warnfilter(SWIGWARN_RUBY_WRONG_NAME) test_Matrix<float, 3, 3>; /* Ruby, wrong class name */ %inline %{ -template <typename T, int r, int c> class Matrix { +template <typename T, int r, int c> class test_Matrix { public: - void Func(const Matrix<T,r,c> &m) { }; + void Func(const test_Matrix<T,r,c> &m) { }; }; %} -%template (matrix33f) Matrix<float,3, 3>; +%template (matrix33f) test_Matrix<float,3, 3>; diff --git a/Examples/test-suite/template_typedef.i b/Examples/test-suite/template_typedef.i index 8ad5de209..b6128e1fa 100644 --- a/Examples/test-suite/template_typedef.i +++ b/Examples/test-suite/template_typedef.i @@ -8,15 +8,15 @@ // #if 0 -#define real double +#define reald double %{ -#define real double +#define reald double %} #else %inline %{ - typedef double real; + typedef double reald; %} #endif @@ -24,7 +24,7 @@ %inline %{ - // typedef double real; + // typedef double reald; namespace vfncs { @@ -78,29 +78,29 @@ }; template<> - struct arith_traits< real, real > + struct arith_traits< reald, reald > { - typedef real argument_type; - typedef real result_type; + typedef reald argument_type; + typedef reald result_type; static const char* const arg_type; static const char* const res_type; }; template<> - struct arith_traits< real, float > + struct arith_traits< reald, float > { typedef float argument_type; - typedef real result_type; + typedef reald result_type; static const char* const arg_type; static const char* const res_type; }; template<> - struct arith_traits< float, real > + struct arith_traits< float, reald > { typedef float argument_type; - typedef real result_type; + typedef reald result_type; static const char* const arg_type; static const char* const res_type; }; @@ -124,14 +124,14 @@ const char* const arith_traits< float, float >::arg_type = "float"; const char* const arith_traits< float, float >::res_type = "float"; - const char* const arith_traits< real, real >::arg_type = "real"; - const char* const arith_traits< real, real >::res_type = "real"; + const char* const arith_traits< reald, reald >::arg_type = "reald"; + const char* const arith_traits< reald, reald >::res_type = "reald"; - const char* const arith_traits< real, float >::arg_type = "float"; - const char* const arith_traits< real, float >::res_type = "real"; + const char* const arith_traits< reald, float >::arg_type = "float"; + const char* const arith_traits< reald, float >::res_type = "reald"; - const char* const arith_traits< float, real >::arg_type = "float"; - const char* const arith_traits< float, real >::res_type = "real"; + const char* const arith_traits< float, reald >::arg_type = "float"; + const char* const arith_traits< float, reald >::res_type = "reald"; #endif @@ -145,32 +145,32 @@ namespace vfncs { %template() arith_traits<float, float >; %template(make_Identity_float) make_Identity<float >; - %template(UnaryFunction_real_real) UnaryFunction<real, real >; - %template(ArithUnaryFunction_real_real) ArithUnaryFunction<real, real >; + %template(UnaryFunction_reald_reald) UnaryFunction<reald, reald >; + %template(ArithUnaryFunction_reald_reald) ArithUnaryFunction<reald, reald >; - %template() unary_func_traits<real, real >; - %template() arith_traits<real, real >; - %template(make_Identity_real) make_Identity<real >; + %template() unary_func_traits<reald, reald >; + %template() arith_traits<reald, reald >; + %template(make_Identity_reald) make_Identity<reald >; /* [beazley] Added this part */ - %template() unary_func_traits<float,real>; - %template(UnaryFunction_float_real) UnaryFunction<float,real>; - %template(ArithUnaryFunction_float_real) ArithUnaryFunction<float,real>; + %template() unary_func_traits<float,reald>; + %template(UnaryFunction_float_reald) UnaryFunction<float,reald>; + %template(ArithUnaryFunction_float_reald) ArithUnaryFunction<float,reald>; /* */ - %template() arith_traits<real, float >; - %template() arith_traits<float, real >; + %template() arith_traits<reald, float >; + %template() arith_traits<float, reald >; %template() arith_traits<float, float >; - %template(make_Multiplies_float_float_real_real) - make_Multiplies<float, float, real, real>; + %template(make_Multiplies_float_float_reald_reald) + make_Multiplies<float, float, reald, reald>; %template(make_Multiplies_float_float_float_float) make_Multiplies<float, float, float, float>; - %template(make_Multiplies_real_real_real_real) - make_Multiplies<real, real, real, real>; + %template(make_Multiplies_reald_reald_reald_reald) + make_Multiplies<reald, reald, reald, reald>; } diff --git a/Examples/test-suite/template_typedef_rec.i b/Examples/test-suite/template_typedef_rec.i index f630034db..83fe2104a 100644 --- a/Examples/test-suite/template_typedef_rec.i +++ b/Examples/test-suite/template_typedef_rec.i @@ -6,7 +6,7 @@ typedef size_t MY_sizeT; typedef long MY_intT; typedef double MY_floatT; -class Array +class test_Array { public: typedef MY_intT intT; @@ -19,7 +19,7 @@ template <typename T> class ArrayIterator { public: - typedef Array::intT intT; + typedef test_Array::intT intT; }; @@ -27,13 +27,13 @@ template <typename T> class ArrayReverseIterator { public: - typedef Array::intT intT; + typedef test_Array::intT intT; }; template <typename T> class ArrayPrimitiveT - : public Array + : public test_Array { public: typedef T ValueT; |