@@ -28,65 +28,65 @@ namespace nbl::core
28
28
#ifndef INTELLISENSE_WORKAROUND
29
29
namespace impl
30
30
{
31
- struct NBL_API NBL_FORCE_EBO NBL_NO_VTABLE CMultiCache_tag {};
31
+ struct NBL_FORCE_EBO NBL_NO_VTABLE CMultiCache_tag {};
32
32
33
33
template <template <typename ...> class , template <typename ...> class >
34
- struct NBL_API is_same_templ : std::false_type {};
34
+ struct is_same_templ : std::false_type {};
35
35
36
36
template <template <typename ...> class T >
37
- struct NBL_API is_same_templ<T, T> : std::true_type {};
37
+ struct is_same_templ <T, T> : std::true_type {};
38
38
39
39
template <typename T>
40
- struct NBL_API is_string : std::false_type {};
40
+ struct is_string : std::false_type {};
41
41
template <typename C, typename T, typename A>
42
- struct NBL_API is_string<std::basic_string<C, T, A>> : std::true_type {};
42
+ struct is_string <std::basic_string<C, T, A>> : std::true_type {};
43
43
44
44
template <template <typename ...> class T >
45
- struct NBL_API is_multi_container : std::false_type {};
45
+ struct is_multi_container : std::false_type {};
46
46
template <>
47
- struct NBL_API is_multi_container<std::multimap> : std::true_type {};
47
+ struct is_multi_container <std::multimap> : std::true_type {};
48
48
template <>
49
- struct NBL_API is_multi_container<std::unordered_multimap> : std::true_type {};
49
+ struct is_multi_container <std::unordered_multimap> : std::true_type {};
50
50
51
51
template <template <typename ...> class >
52
- struct NBL_API is_assoc_container : std::false_type {};
52
+ struct is_assoc_container : std::false_type {};
53
53
template <>
54
- struct NBL_API is_assoc_container<std::map> : std::true_type {};
54
+ struct is_assoc_container <std::map> : std::true_type {};
55
55
template <>
56
- struct NBL_API is_assoc_container<std::unordered_map> : std::true_type {};
56
+ struct is_assoc_container <std::unordered_map> : std::true_type {};
57
57
template <>
58
- struct NBL_API is_assoc_container<std::multimap> : std::true_type {};
58
+ struct is_assoc_container <std::multimap> : std::true_type {};
59
59
template <>
60
- struct NBL_API is_assoc_container<std::unordered_multimap> : std::true_type {};
60
+ struct is_assoc_container <std::unordered_multimap> : std::true_type {};
61
61
62
62
template <typename K, typename ...>
63
- struct NBL_API NBL_FORCE_EBO NBL_NO_VTABLE PropagKeyTypeTypedef_ { using KeyType = K; };
63
+ struct NBL_FORCE_EBO NBL_NO_VTABLE PropagKeyTypeTypedef_ { using KeyType = K; };
64
64
template <typename ...K>
65
- struct NBL_API NBL_FORCE_EBO NBL_NO_VTABLE PropagKeyTypeTypedef : PropagKeyTypeTypedef_<K...> {};
65
+ struct NBL_FORCE_EBO NBL_NO_VTABLE PropagKeyTypeTypedef : PropagKeyTypeTypedef_<K...> {};
66
66
67
67
template <typename T, typename ...K>
68
- struct NBL_API NBL_FORCE_EBO NBL_NO_VTABLE PropagTypedefs : PropagKeyTypeTypedef<K...> { using CachedType = T; };
68
+ struct NBL_FORCE_EBO NBL_NO_VTABLE PropagTypedefs : PropagKeyTypeTypedef<K...> { using CachedType = T; };
69
69
70
70
template <
71
71
template <typename ...> class ContainerT_T ,
72
72
typename Alloc,
73
73
typename T, // value type for container
74
74
typename ...K // optionally key type for std::map/std::unordered_map
75
75
>
76
- struct NBL_API NBL_FORCE_EBO CObjectCacheBase
76
+ struct NBL_FORCE_EBO CObjectCacheBase
77
77
{
78
78
private:
79
79
template <bool isAssoc, template <typename ...> class C >
80
80
struct help ;
81
81
82
82
template <template <typename ...> class C >
83
- struct NBL_API help<true , C>
83
+ struct help <true , C>
84
84
{
85
85
template <typename KK, typename TT, typename AAlloc>
86
86
using container_t = C<KK, TT, std::less<KK>, AAlloc>;
87
87
};
88
88
template <template <typename ...> class C >
89
- struct NBL_API help<false , C>
89
+ struct help <false , C>
90
90
{
91
91
template <typename TT, typename AAlloc>
92
92
using container_t = C<TT, AAlloc>;
@@ -239,15 +239,15 @@ namespace impl
239
239
};
240
240
241
241
template <template <typename ...> class ContainerT_T , typename ContainerT, bool ForMultiCache, bool IsAssocContainer = impl::is_assoc_container<ContainerT_T>::value>
242
- struct NBL_API CPreInsertionVerifier;
242
+ struct CPreInsertionVerifier ;
243
243
template <template <typename ...> class ContainerT_T , typename ContainerT, bool IsAssocContainer>
244
- struct NBL_API CPreInsertionVerifier<ContainerT_T, ContainerT, true , IsAssocContainer>
244
+ struct CPreInsertionVerifier <ContainerT_T, ContainerT, true , IsAssocContainer>
245
245
{
246
246
template <typename ...Ts>
247
247
static bool verify (Ts...) { return true ; }
248
248
};
249
249
template <template <typename ...> class ContainerT_T , typename ContainerT>
250
- struct NBL_API CPreInsertionVerifier<ContainerT_T, ContainerT, false , false >
250
+ struct CPreInsertionVerifier <ContainerT_T, ContainerT, false , false >
251
251
{
252
252
static bool verify (const ContainerT& _container, const typename ContainerT::iterator& _itr, const typename ContainerT::value_type::first_type& _key)
253
253
{
@@ -258,7 +258,7 @@ namespace impl
258
258
}
259
259
};
260
260
template <template <typename ...> class ContainerT_T , typename ContainerT>
261
- struct NBL_API CPreInsertionVerifier<ContainerT_T, ContainerT, false , true >
261
+ struct CPreInsertionVerifier <ContainerT_T, ContainerT, false , true >
262
262
{
263
263
static bool verify (const std::pair<typename ContainerT::iterator, bool >& _insertionRes)
264
264
{
@@ -311,15 +311,15 @@ namespace impl
311
311
typename T, // value type for container
312
312
typename ...K // optionally key type for std::map/std::unordered_map
313
313
>
314
- struct NBL_API CMultiObjectCacheBase;
314
+ struct CMultiObjectCacheBase ;
315
315
316
316
template <
317
317
template <typename ...> class ContainerT_T ,
318
318
typename Alloc,
319
319
typename T, // value type for container
320
320
typename ...K // optionally key type for std::map/std::unordered_map
321
321
>
322
- struct NBL_API NBL_FORCE_EBO CMultiObjectCacheBase<true , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>, public CMultiCache_tag
322
+ struct NBL_FORCE_EBO CMultiObjectCacheBase<true , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>, public CMultiCache_tag
323
323
{
324
324
private:
325
325
using Base = CObjectCacheBase<ContainerT_T, Alloc, T, K...>;
@@ -351,7 +351,7 @@ namespace impl
351
351
typename T, // value type for container
352
352
typename ...K // optionally key type for std::map/std::unordered_map
353
353
>
354
- struct NBL_API NBL_FORCE_EBO CMultiObjectCacheBase<false , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>, public CMultiCache_tag
354
+ struct NBL_FORCE_EBO CMultiObjectCacheBase<false , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>, public CMultiCache_tag
355
355
{
356
356
private:
357
357
using Base = CObjectCacheBase<ContainerT_T, Alloc, T, K...>;
@@ -400,7 +400,7 @@ namespace impl
400
400
typename T, // value type for container
401
401
typename ...K // optionally key type for std::map/std::unordered_map
402
402
>
403
- struct NBL_API NBL_FORCE_EBO CMultiObjectCacheBaseExt : public CMultiObjectCacheBase<!IsVectorContainer, ContainerT_T, Alloc, T, K...>
403
+ struct NBL_FORCE_EBO CMultiObjectCacheBaseExt : public CMultiObjectCacheBase<!IsVectorContainer, ContainerT_T, Alloc, T, K...>
404
404
{
405
405
private:
406
406
using Base = CMultiObjectCacheBase<!IsVectorContainer, ContainerT_T, Alloc, T, K...>;
@@ -478,7 +478,7 @@ namespace impl
478
478
typename T, // value type for container
479
479
typename ...K // optionally key type for std::map/std::unordered_map
480
480
>
481
- struct NBL_API NBL_FORCE_EBO CUniqObjectCacheBase<true , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>
481
+ struct NBL_FORCE_EBO CUniqObjectCacheBase<true , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>
482
482
{
483
483
private:
484
484
using Base = CObjectCacheBase<ContainerT_T, Alloc, T, K...>;
@@ -513,7 +513,7 @@ namespace impl
513
513
typename T, // value type for container
514
514
typename ...K // optionally key type for std::map/std::unordered_map
515
515
>
516
- struct NBL_API NBL_FORCE_EBO CUniqObjectCacheBase<false , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>
516
+ struct NBL_FORCE_EBO CUniqObjectCacheBase<false , ContainerT_T, Alloc, T, K...> : public CObjectCacheBase<ContainerT_T, Alloc, T, K...>
517
517
{
518
518
private:
519
519
using Base = CObjectCacheBase<ContainerT_T, Alloc, T, K...>;
@@ -549,7 +549,7 @@ namespace impl
549
549
typename T, // value type for container
550
550
typename ...K // optionally key type for std::map/std::unordered_map
551
551
>
552
- struct NBL_API CUniqObjectCacheBaseExt : public CUniqObjectCacheBase<isVectorContainer, ContainerT_T, Alloc, T, K...>
552
+ struct CUniqObjectCacheBaseExt : public CUniqObjectCacheBase <isVectorContainer, ContainerT_T, Alloc, T, K...>
553
553
{
554
554
private:
555
555
using Base = CUniqObjectCacheBase<isVectorContainer, ContainerT_T, Alloc, T, K...>;
@@ -603,7 +603,7 @@ namespace impl
603
603
typename T, // value type for container
604
604
typename ...K // optionally key type for std::map/std::unordered_map
605
605
>
606
- struct NBL_API NBL_FORCE_EBO CDirectCacheBase :
606
+ struct NBL_FORCE_EBO CDirectCacheBase :
607
607
public std::conditional<forMultiCache, CMultiObjectCacheBaseExt<isVectorContainer, ContainerT_T, Alloc, T, K...>, CUniqObjectCacheBaseExt<isVectorContainer, ContainerT_T, Alloc, T, K...>>::type
608
608
{
609
609
private:
@@ -687,10 +687,10 @@ namespace impl
687
687
namespace impl
688
688
{
689
689
template <template <typename ...> class Container , typename K, typename V>
690
- struct NBL_API key_val_pair_type_for { using type = std::pair<const K, V>; };
690
+ struct key_val_pair_type_for { using type = std::pair<const K, V>; };
691
691
692
692
template <typename K, typename V>
693
- struct NBL_API key_val_pair_type_for<std::vector, K, V> { using type = std::pair<K, V>; };
693
+ struct key_val_pair_type_for <std::vector, K, V> { using type = std::pair<K, V>; };
694
694
}
695
695
template <
696
696
typename K,
@@ -707,7 +707,7 @@ template<
707
707
template <typename ...> class ContainerT_T ,
708
708
typename Alloc
709
709
>
710
- class NBL_API NBL_FORCE_EBO CMultiObjectCache<K, T, ContainerT_T, Alloc, true > :
710
+ class NBL_FORCE_EBO CMultiObjectCache<K, T, ContainerT_T, Alloc, true > :
711
711
public impl::CDirectMultiCacheBase<true , ContainerT_T, Alloc, std::pair<K, T>>,
712
712
public impl::PropagTypedefs<T, K>
713
713
{
@@ -723,7 +723,7 @@ template<
723
723
template <typename ...> class ContainerT_T ,
724
724
typename Alloc
725
725
>
726
- class NBL_API NBL_FORCE_EBO CMultiObjectCache<K, T, ContainerT_T, Alloc, false > :
726
+ class NBL_FORCE_EBO CMultiObjectCache<K, T, ContainerT_T, Alloc, false > :
727
727
public impl::CDirectMultiCacheBase<false , ContainerT_T, Alloc, T, const K>,
728
728
public impl::PropagTypedefs<T, const K>
729
729
{
@@ -751,7 +751,7 @@ template<
751
751
template <typename ...> class ContainerT_T ,
752
752
typename Alloc
753
753
>
754
- class NBL_API NBL_FORCE_EBO CObjectCache<K, T, ContainerT_T, Alloc, true > :
754
+ class NBL_FORCE_EBO CObjectCache<K, T, ContainerT_T, Alloc, true > :
755
755
public impl::CDirectUniqCacheBase<true , ContainerT_T, Alloc, std::pair<K, T>>,
756
756
public impl::PropagTypedefs<T, K>
757
757
{
@@ -768,7 +768,7 @@ template<
768
768
template <typename ...> class ContainerT_T ,
769
769
typename Alloc
770
770
>
771
- class NBL_API NBL_FORCE_EBO CObjectCache<K, T, ContainerT_T, Alloc, false > :
771
+ class NBL_FORCE_EBO CObjectCache<K, T, ContainerT_T, Alloc, false > :
772
772
public impl::CDirectUniqCacheBase<false , ContainerT_T, Alloc, T, const K>,
773
773
public impl::PropagTypedefs<T, const K>
774
774
{
@@ -784,7 +784,7 @@ class NBL_API NBL_FORCE_EBO CObjectCache<K, T, ContainerT_T, Alloc, false> :
784
784
// BELOW SHALL NOT BE COMPILED! it's because Visual Studio's Intellisense crashes with the code above and doesn't even highlight syntax in any file which includes this
785
785
786
786
template <typename K, typename T, template <typename ...> class C = std::vector, typename A = core::allocator<std::pair<const K, T*>>>
787
- class NBL_API CObjectCache
787
+ class CObjectCache
788
788
{
789
789
public:
790
790
CObjectCache () = default ;
@@ -806,7 +806,7 @@ class NBL_API CObjectCache
806
806
size_t getSize () const ;
807
807
};
808
808
template <typename K, typename T, template <typename ...> class C = std::vector, typename A = core::allocator<std::pair<const K, T*>>>
809
- class NBL_API CMultiObjectCache
809
+ class CMultiObjectCache
810
810
{
811
811
public:
812
812
CMultiObjectCache () = default ;
0 commit comments