Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
950 B

  1. /*
  2. Vectors + allocators
  3. */
  4. %fragment("StdVectorATraits","header",fragment="StdSequenceTraits")
  5. %{
  6. namespace swig {
  7. template <class T, class A>
  8. struct traits_asptr<std::vector<T,A> > {
  9. typedef std::vector<T,A> vector_type;
  10. typedef T value_type;
  11. static int asptr(VALUE obj, vector_type **vec) {
  12. return traits_asptr_stdseq<vector_type>::asptr(obj, vec);
  13. }
  14. };
  15. template <class T, class A>
  16. struct traits_from<std::vector<T,A> > {
  17. typedef std::vector<T,A> vector_type;
  18. static VALUE from(const vector_type& vec) {
  19. return traits_from_stdseq<vector_type>::from(vec);
  20. }
  21. };
  22. }
  23. %}
  24. #define %swig_vector_methods(Type...) %swig_sequence_methods(Type)
  25. #define %swig_vector_methods_val(Type...) %swig_sequence_methods_val(Type);
  26. %mixin std::vector "Enumerable";
  27. %ignore std::vector::push_back;
  28. %ignore std::vector::pop_back;
  29. %alias std::vector::push "<<";
  30. %include <std/std_vectora.i>