overload_simple # unless explicitly casted via {{u}int{8,16,32,64},double,single}, # octave will take numeric literals as doubles. if (!strcmp(foo(3),"foo:int")) error("foo(int)") endif if (!strcmp(foo(3.1),"foo:double")) error("foo(double)") endif if (!strcmp(foo("hello"),"foo:char *")) error("foo(char *)") endif f = Foo(); b = Bar(); if (!strcmp(foo(f),"foo:Foo *")) error("foo(Foo *)") endif if (!strcmp(foo(b),"foo:Bar *")) error("foo(Bar *)") endif v = malloc_void(32); if (!strcmp(foo(v),"foo:void *")) error("foo(void *)") endif s = Spam(); if (!strcmp(s.foo(3),"foo:int")) error("Spam::foo(int)") endif if (!strcmp(s.foo(3.1),"foo:double")) error("Spam::foo(double)") endif if (!strcmp(s.foo("hello"),"foo:char *")) error("Spam::foo(char *)") endif if (!strcmp(s.foo(f),"foo:Foo *")) error("Spam::foo(Foo *)") endif if (!strcmp(s.foo(b),"foo:Bar *")) error("Spam::foo(Bar *)") endif if (!strcmp(s.foo(v),"foo:void *")) error("Spam::foo(void *)") endif if (!strcmp(Spam_bar(3),"bar:int")) error("Spam::bar(int)") endif if (!strcmp(Spam_bar(3.1),"bar:double")) error("Spam::bar(double)") endif if (!strcmp(Spam_bar("hello"),"bar:char *")) error("Spam::bar(char *)") endif if (!strcmp(Spam_bar(f),"bar:Foo *")) error("Spam::bar(Foo *)") endif if (!strcmp(Spam_bar(b),"bar:Bar *")) error("Spam::bar(Bar *)") endif if (!strcmp(Spam_bar(v),"bar:void *")) error("Spam::bar(void *)") endif # Test constructors s = Spam(); if (!strcmp(s.type,"none")) error("Spam()") endif s = Spam(3); if (!strcmp(s.type,"int")) error("Spam(int)") endif s = Spam(3.4); if (!strcmp(s.type,"double")) error("Spam(double)") endif s = Spam("hello"); if (!strcmp(s.type,"char *")) error("Spam(char *)") endif s = Spam(f); if (!strcmp(s.type,"Foo *")) error("Spam(Foo *)") endif s = Spam(b); if (!strcmp(s.type,"Bar *")) error("Spam(Bar *)") endif s = Spam(v); if (!strcmp(s.type,"void *")) error("Spam(void *)") endif free_void(v); a = ClassA(); b = a.method1(1);