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 <[email protected]> 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
> [email protected]
> http://mail.python.org/mailman/listinfo/cplusplus-sig
_______________________________________________
Cplusplus-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/cplusplus-sig