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

Reply via email to