[Qgis-developer] Template programming in QGIS
GOO Creations
goocreations at gmail.com
Fri May 13 03:32:12 EDT 2011
Hi all
I'm currently writing C++ code that I want to use via Python with SIP.
The following is a skeleton for my code:
/template<class T>
class MyClass
{
//MyClass//(QString s);
T* calculate();
}
class B
{
B();
void doStuff();
}
void B::doStuff()
{
//MyClass//<int> var("");
int *var2 = var.calculate();
}
/
The only class I've included in my SIP file is class B (and not class
A). Everything compiles correctly, but when QGIS starts, I get a Python
error:
/ File "/home/goocreations/apps/share/qgis/python/qgis/utils.py",
line 283, in _import/
/ mod = _builtin_import(name, globals, locals, fromlist, level)/
/ImportError: /home/goocreations/apps/lib/libqgis_mylib.so.1.7.0:
undefined symbol: _ZN15//MyClassIiEC1E7QString/
This error seems strange, since I've never included MyClass in the SIP
files and the only place MyClass is instantiated is in my cpp file (I
didn't even include the MyClass directory in the cmake file that handles
the SIP files). So I'm a bit confused of how Python gives an error on
code that isn't linked to SIP.
So, I've though that creating a SIP binding for MyClass may resolve the
issue, but I can't figure out how I would use templates in SIP.
By the may: when I remove the template from MyClass and make everything
by default int, everything compiles and runs perfectly.
Does anyone have an idea of why this is happening, or if I maybe have to
include something special in the cmake files?
Thanks
Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/qgis-developer/attachments/20110513/fc858db7/attachment.html
More information about the Qgis-developer
mailing list