Fix Intel C++ compiler incompatibility
[libcds.git] / cds / intrusive / striped_set / boost_avl_set.h
1 //$$CDS-header$$
2
3 #ifndef __CDS_INTRUSIVE_STRIPED_SET_BOOST_AVL_SET_ADAPTER_H
4 #define __CDS_INTRUSIVE_STRIPED_SET_BOOST_AVL_SET_ADAPTER_H
5
6 #include <boost/intrusive/avl_set.hpp>
7 #include <cds/intrusive/striped_set/adapter.h>
8
9 //@cond
10 namespace cds { namespace intrusive { namespace striped_set {
11
12 #if CDS_COMPILER == CDS_COMPILER_INTEL && CDS_COMPILER_VERSION <= 1500
13     template <typename T, typename P1, typename P2, typename P3, typename P4, typename P5, typename... Options>
14     class adapt< boost::intrusive::avl_set< T, P1, P2, P3, P4, P5 >, Options... >
15     {
16     public:
17         typedef boost::intrusive::avl_set< T, P1, P2, P3, P4, P5 >  container_type;   ///< underlying intrusive container type
18
19     public:
20         typedef details::boost_intrusive_set_adapter<container_type>   type;  ///< Result of the metafunction
21     };
22 #else
23     template <typename T, typename... BIOptons, typename... Options>
24     class adapt< boost::intrusive::avl_set< T, BIOptons... >, Options... >
25     {
26     public:
27         typedef boost::intrusive::avl_set< T, BIOptons... >  container_type  ;   ///< underlying intrusive container type
28
29     public:
30         typedef details::boost_intrusive_set_adapter<container_type>   type ;  ///< Result of the metafunction
31     };
32 #endif
33
34 }}} // namespace cds::intrusive::striped_set
35 //@endcond
36
37 #endif // #ifndef __CDS_INTRUSIVE_STRIPED_SET_BOOST_AVL_SET_ADAPTER_H