ALBA
albaDllMacros.h
Go to the documentation of this file.
1#ifndef DllExportH
2#define DllExportH
3
4#if defined(_MSC_VER)
5
6#ifdef _DEBUG
7# define class_it_base class
8#else
9# define class_it_base struct
10#endif
11
12#define EXPORT_VNL_MATRIX(declspec_, T_) \
13 template class declspec_ vnl_matrix<T_ >;
14
15#define EXPORT_VNL_VECTOR(declspec_, T_) \
16 template class declspec_ vnl_vector<T_ >;
17
18#define EXPORT_STL_VECTOR(declspec_, T_) \
19 template class declspec_ std::allocator<T_ >; \
20 template class declspec_ std::vector<T_ >;
21
22#define EXPORT_STL_VECTOR_CONST_ITERATOR(declspec_, T_) \
23 class_it_base declspec_ std::_Iterator_base; \
24 template class declspec_ std::_Vector_const_iterator<T_,\
25 std::allocator<T_ > >;
26
27#define EXPORT_STL_DEQUE(declspec_, T_) \
28 template class declspec_ std::allocator<T_ >; \
29 template class declspec_ std::allocator<T_* >; \
30 template class declspec_ std::deque<T_ >;
31
32#define EXPORT_STL_LIST(declspec_, T_) \
33 template class declspec_ std::allocator<T_ >; \
34 template class declspec_ std::list<T_ >;
35
36// #define EXPORT_STL_SET(declspec_, T_) \
37// template class declspec_ std::allocator<T_ >; \
38// template struct declspec_ std::less<T_ >; \
39// template class declspec_ std::allocator<std::_Tree_nod< \
40// std::_Tset_traits<T_, std::less<T_ >, std::allocator<T_ >, false> \
41// >::_Node>; \
42// template class declspec_ std::allocator<std::_Tree_ptr< \
43// std::_Tset_traits<T_, std::less<T_ >, std::allocator<T_ >, false> \
44// >::_Node*>; \
45// template class declspec_ std::set<T_ >;
46
47#define EXPORT_STL_MULTISET(declspec_, T_) \
48 template class declspec_ std::allocator<T_ >; \
49 template struct declspec_ std::less<T_ >; \
50 template class declspec_ std::allocator<std::_Tree_nod< \
51 std::_Tset_traits<T_, std::less<T_ >, std::allocator<T_ >, true> \
52 >::_Node>; \
53 template class declspec_ std::allocator<std::_Tree_ptr< \
54 std::_Tset_traits<T_, std::less<T_ >, std::allocator<T_ >, true> \
55 >::_Node*>; \
56 template class declspec_ std::multiset<T_ >;
57
58#define EXPORT_STL_MAP(declspec_, K_, V_) \
59 template struct declspec_ std::less<K_ >; \
60 template class declspec_ std::allocator<std::pair<const K_, V_ > >; \
61 template class declspec_ std::map<K_, V_ >;
62
63
64#define EXPORT_STL_MAP_CONST_ITERATOR(declspec_, K_, V_) \
65 class_it_base declspec_ std::_Iterator_base; \
66 template class declspec_ std::_Tree<std::_Tmap_traits<K_, V_, \
67 std::less<K_>, std::allocator<std::pair<const K_, V_ > >, false> \
68 >::const_iterator;
69
70
71#define EXPORT_STL_MULTIMAP(declspec_, K_, V_) \
72 template struct declspec_ std::less<K_ >; \
73 template class declspec_ std::allocator<std::_Tree_nod< \
74 std::_Tmap_traits<K_, V_, std::less<K_ >, \
75 std::allocator<std::pair<const K_, V_ > >, true> >::_Node>; \
76 template class declspec_ std::allocator<std::_Tree_nod< \
77 std::_Tmap_traits<K_, V_, std::less<K_ >, \
78 std::allocator<std::pair<const K_, V_ > >, true> >::_Node*>; \
79 template class declspec_ std::allocator<std::pair<const K_, V_ > >; \
80 template class declspec_ std::multimap<K_, V_ >;
81
82#else
83
84#define EXPORT_STL_VECTOR(declspec_, T_)
85#define EXPORT_STL_VECTOR_CONST_ITERATOR(declspec_, T_)
86#define EXPORT_STL_DEQUE(declspec_, T_)
87#define EXPORT_STL_LIST(declspec_, T_)
88#define EXPORT_STL_SET(declspec_, T_)
89#define EXPORT_STL_MULTISET(declspec_, T_)
90#define EXPORT_STL_MAP(declspec_, K_, V_)
91#define EXPORT_STL_MAP_CONST_ITERATOR(declspec_, K_, V_)
92#define EXPORT_STL_MULTIMAP(declspec_, K_, V_)
93
94#endif
95
96#endif