Thanks for the response That trick can help me out in the python level since python is has a duck typing attribute.
do you familiar with any a procedure for the C++ ?. what I mean is this : I would like to have some generic pointer that can either point to BarWithPolicy<FooFilePolicy > nor to BarWithPolicy<FooIoPolicy > ? thanks -Dotan On Sun, Mar 17, 2013 at 9:36 AM, Holger Brandsmeier <brandsme...@gmx.de>wrote: > Dotan, > > in > >>> barPolicy = GetBarWithPolic(Io) > >>> barPolicy = GetBarWithPolic(File) > what type of object would you imaginge `Io` and `File` to be? > > You already exported the functions as `GetBarWithPolicIo` and > `GetBarWithPolicFile` and then you could implement in python > `GetBarWithPolic(str)` and there use something like `return > globals()["GetBarWithPolic%s" % (str,)]()` where you would now do > barPolicy = GetBarWithPolic("Io") > barPolicy = GetBarWithPolic("File") > > -Holger > > On Sun, Mar 17, 2013 at 6:49 AM, dbarak <dba...@gmail.com> wrote: > > Assume I have this Interface: > > class FooInterface > > { > > public: > > ... > > > > }; > > > > class FooFilePolicy : public FooInterface > > { > > ... > > }; > > > > class FooIoPolicy : public FooInterface > > { > > ... > > }; > > > > And I have this template using the upper interface policy: > > > > template< typename FooPolicy > > > class BarWithPolicy > > { > > ... > > FooPolicy* policy; > > ... > > }; > > > > How can I expose BarWithPolicy to python that can be generically > instantiate > > with both FooIoPolicy and FooFilePolicy ? > > > > > > I don't want to do this : > > > > BarWithPolicy<FooFilePolicy >& GetBarWithPolicyFile() > > { > > return new BarWithPolicy<FooFilePolicy >; > > } > > > > BarWithPolicy<FooIoPolicy>& GetBarWithPolicyIo() > > { > > return new BarWithPolicy<FooIoPolicy >; > > } > > > > BOOST_PYTHON_MODULE(PyBar) > > { > > def("GetBarWithPolicyFile", > > &GetBarWithPolicyFile, > > return_value_policy<reference_existing_object>(), > > "" > > ); > > def("GetBarWithPolicyIo", > > &GetBarWithPolicyIo, > > return_value_policy<reference_existing_object>(), > > "" > > ); > > } > > > > I would like to have some thing like this in python: > > > >>>> barPolicy = GetBarWithPolic(Io) > > Or > >>>> barPolicy = GetBarWithPolic(File) > > > > Thanks > > -Dotan > > > > > > > > > > > > -- > > View this message in context: > http://boost.2283326.n4.nabble.com/Exposing-c-class-template-to-Python-known-template-instances-tp4644238.html > > Sent from the Python - c++-sig mailing list archive at Nabble.com. > > _______________________________________________ > > Cplusplus-sig mailing list > > Cplusplus-sig@python.org > > http://mail.python.org/mailman/listinfo/cplusplus-sig > _______________________________________________ > Cplusplus-sig mailing list > Cplusplus-sig@python.org > http://mail.python.org/mailman/listinfo/cplusplus-sig > -- Dotan Barak
_______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig