Hi,
I am getting warnings when I export a class that contains an STL deque. Note that for a simple stl vector there are no warnings, only for the deque ... I applied the rules defined on the msn page : [url]http://support.microsoft.com/kb/168958[/url]
But still get a compile warning that I would like to get rid of.
Any hints would be appreciated !
Thanks alot !
matt-
code snippet and associated warning below :
#ifdef IPGENPROC_EXPORTS
#define IPGENPROC_API __declspec(dllexport)
#define IPGENPROC_TEMPLATE
#else
#define IPGENPROC_API __declspec(dllimport)
#define IPGENPROC_TEMPLATE extern
#endif
class IPGENPROC_API Point3D
{
public:
short x,y,z;
public:
bool operator < (const Point3D c) const
{
return (z < c. z) && (y < c. y) && (x < c.z);
}
bool operator == (const Point3D c) const
{
return (z == c. z) && (y == c. y) && (x == c.z);
}
};
IPGENPROC_TEMPLATE template class IPGENPROC_API allocator<Point3D>;
IPGENPROC_TEMPLATE template class IPGENPROC_API deque<Point3D>;
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\deque(54) : warning C4251: 'std::_Deque_map<_Ty,_Alloc>::_Almap' : class 'std::allocator<_Ty>' needs to have dll-interface to be used by clients of class 'std::_Deque_map<_Ty,_Alloc>'
with
[
_Ty=Point3D,
_Alloc=std::allocator<Point3D>
]
and
[
_Ty=std::_Deque_map<Point3D,std::allocator<Point3D>>::_Tptr
]
and
[
_Ty=Point3D,
_Alloc=std::allocator<Point3D>
]