[C++-sig] Exposing c++ class template to Python (known template instances)
dbarak
dbarak at gmail.com
Sun Mar 17 06:49:05 CET 2013
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.
More information about the Cplusplus-sig
mailing list