PageRenderTime 52ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/varargs_overload.i

#
Swig | 44 lines | 40 code | 4 blank | 0 comment | 0 complexity | 57c125e173b847ac9e2d2da8c6de8482 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. // Tests SWIG's *default* handling of overloading varargs (function varargs, not preprocessor varargs).
  2. // The default behavior is to simply ignore the varargs.
  3. %module varargs_overload
  4. %inline %{
  5. const char *vararg_over1(const char *fmt, ...) {
  6. return fmt;
  7. }
  8. const char *vararg_over1(int i) {
  9. static char buffer[256];
  10. sprintf(buffer, "%d", i);
  11. return buffer;
  12. }
  13. const char *vararg_over2(const char *fmt, ...) {
  14. return fmt;
  15. }
  16. const char *vararg_over2(int i, double j) {
  17. static char buffer[256];
  18. sprintf(buffer, "%d %g", i, j);
  19. return buffer;
  20. }
  21. const char *vararg_over3(const char *fmt, ...) {
  22. return fmt;
  23. }
  24. const char *vararg_over3(int i, double j, const char *s) {
  25. static char buffer[256];
  26. sprintf(buffer, "%d %g %s", i, j, s);
  27. return buffer;
  28. }
  29. %}
  30. %varargs(int mode = 0) vararg_over4;
  31. %inline %{
  32. const char *vararg_over4(const char *fmt, ...) {
  33. return fmt;
  34. }
  35. const char *vararg_over4(int i) {
  36. static char buffer[256];
  37. sprintf(buffer, "%d", i);
  38. return buffer;
  39. }
  40. %}