|
1 | | -// (C) Copyright David Abrahams 2000. Permission to copy, use, modify, sell and |
| 1 | +// (C) Copyright David Abrahams 2001. Permission to copy, use, modify, sell and |
2 | 2 | // distribute this software is granted provided this copyright notice appears |
3 | 3 | // in all copies. This software is provided "as is" without express or implied |
4 | 4 | // warranty, and with no claim as to its suitability for any purpose. |
@@ -727,25 +727,80 @@ class held_instance : public Held |
727 | 727 | public: |
728 | 728 | held_instance(PyObject*) : Held() {} |
729 | 729 | template <class A1> |
730 | | - held_instance(PyObject*, A1 a1) : Held(a1) {} |
| 730 | + held_instance(PyObject*, A1 a1) : Held( |
| 731 | + typename unwrap_parameter<A1>::type(a1)) {} |
731 | 732 | template <class A1, class A2> |
732 | | - held_instance(PyObject*, A1 a1, A2 a2) : Held(a1, a2) {} |
| 733 | + held_instance(PyObject*, A1 a1, A2 a2) : Held( |
| 734 | + typename unwrap_parameter<A1>::type(a1) |
| 735 | + , typename unwrap_parameter<A2>::type(a2)) {} |
733 | 736 | template <class A1, class A2, class A3> |
734 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3) : Held(a1, a2, a3) {} |
| 737 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3) : Held( |
| 738 | + typename unwrap_parameter<A1>::type(a1) |
| 739 | + , typename unwrap_parameter<A2>::type(a2) |
| 740 | + , typename unwrap_parameter<A3>::type(a3)) {} |
735 | 741 | template <class A1, class A2, class A3, class A4> |
736 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4) : Held(a1, a2, a3, a4) {} |
| 742 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4) : Held( |
| 743 | + typename unwrap_parameter<A1>::type(a1) |
| 744 | + , typename unwrap_parameter<A2>::type(a2) |
| 745 | + , typename unwrap_parameter<A3>::type(a3) |
| 746 | + , typename unwrap_parameter<A4>::type(a4)) {} |
737 | 747 | template <class A1, class A2, class A3, class A4, class A5> |
738 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) : Held(a1, a2, a3, a4, a5) {} |
| 748 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) : Held( |
| 749 | + typename unwrap_parameter<A1>::type(a1) |
| 750 | + , typename unwrap_parameter<A2>::type(a2) |
| 751 | + , typename unwrap_parameter<A3>::type(a3) |
| 752 | + , typename unwrap_parameter<A4>::type(a4) |
| 753 | + , typename unwrap_parameter<A5>::type(a5)) {} |
739 | 754 | template <class A1, class A2, class A3, class A4, class A5, class A6> |
740 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) : Held(a1, a2, a3, a4, a5, a6) {} |
| 755 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) : Held( |
| 756 | + typename unwrap_parameter<A1>::type(a1) |
| 757 | + , typename unwrap_parameter<A2>::type(a2) |
| 758 | + , typename unwrap_parameter<A3>::type(a3) |
| 759 | + , typename unwrap_parameter<A4>::type(a4) |
| 760 | + , typename unwrap_parameter<A5>::type(a5) |
| 761 | + , typename unwrap_parameter<A6>::type(a6)) {} |
741 | 762 | template <class A1, class A2, class A3, class A4, class A5, class A6, class A7> |
742 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) : Held(a1, a2, a3, a4, a5, a6, a7) {} |
| 763 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) : Held( |
| 764 | + typename unwrap_parameter<A1>::type(a1) |
| 765 | + , typename unwrap_parameter<A2>::type(a2) |
| 766 | + , typename unwrap_parameter<A3>::type(a3) |
| 767 | + , typename unwrap_parameter<A4>::type(a4) |
| 768 | + , typename unwrap_parameter<A5>::type(a5) |
| 769 | + , typename unwrap_parameter<A6>::type(a6) |
| 770 | + , typename unwrap_parameter<A7>::type(a7)) {} |
743 | 771 | template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> |
744 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) : Held(a1, a2, a3, a4, a5, a6, a7, a8) {} |
| 772 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) : Held( |
| 773 | + typename unwrap_parameter<A1>::type(a1) |
| 774 | + , typename unwrap_parameter<A2>::type(a2) |
| 775 | + , typename unwrap_parameter<A3>::type(a3) |
| 776 | + , typename unwrap_parameter<A4>::type(a4) |
| 777 | + , typename unwrap_parameter<A5>::type(a5) |
| 778 | + , typename unwrap_parameter<A6>::type(a6) |
| 779 | + , typename unwrap_parameter<A7>::type(a7) |
| 780 | + , typename unwrap_parameter<A8>::type(a8)) {} |
745 | 781 | template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> |
746 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) : Held(a1, a2, a3, a4, a5, a6, a7, a8, a9) {} |
| 782 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) : Held( |
| 783 | + typename unwrap_parameter<A1>::type(a1) |
| 784 | + , typename unwrap_parameter<A2>::type(a2) |
| 785 | + , typename unwrap_parameter<A3>::type(a3) |
| 786 | + , typename unwrap_parameter<A4>::type(a4) |
| 787 | + , typename unwrap_parameter<A5>::type(a5) |
| 788 | + , typename unwrap_parameter<A6>::type(a6) |
| 789 | + , typename unwrap_parameter<A7>::type(a7) |
| 790 | + , typename unwrap_parameter<A8>::type(a8) |
| 791 | + , typename unwrap_parameter<A9>::type(a9)) {} |
747 | 792 | template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10> |
748 | | - held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) : Held(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) {} |
| 793 | + held_instance(PyObject*, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) : Held( |
| 794 | + typename unwrap_parameter<A1>::type(a1) |
| 795 | + , typename unwrap_parameter<A2>::type(a2) |
| 796 | + , typename unwrap_parameter<A3>::type(a3) |
| 797 | + , typename unwrap_parameter<A4>::type(a4) |
| 798 | + , typename unwrap_parameter<A5>::type(a5) |
| 799 | + , typename unwrap_parameter<A6>::type(a6) |
| 800 | + , typename unwrap_parameter<A7>::type(a7) |
| 801 | + , typename unwrap_parameter<A8>::type(a8) |
| 802 | + , typename unwrap_parameter<A9>::type(a9) |
| 803 | + , typename unwrap_parameter<A10>::type(a10)) {} |
749 | 804 | }; |
750 | 805 |
|
751 | 806 | // Abstract base class for all obj holders. Base for template class |
|
0 commit comments