Add some magic to satisfy Intel C++ compiler on boost::intrusive adapters
[libcds.git] / cds / intrusive / striped_set / boost_splay_set.h
index 0bd769ff525bd8ce7d7c70867d2ff16d8b43dc06..ad2d1bf74994bcce749932e97662c5bced8d4f8c 100644 (file)
@@ -9,16 +9,29 @@
 //@cond
 namespace cds { namespace intrusive { namespace striped_set {
 
+#if CDS_COMPILER == CDS_COMPILER_INTEL && CDS_COMPILER_VERSION <= 1500
+    template <typename T, typename O1, typename O2, typename O3, typename O4, typename... Options>
+    class adapt< boost::intrusive::splay_set< T, O1, O2, O3, O4 >, Options... >
+    {
+    public:
+        typedef boost::intrusive::splay_set< T, O1, O2, O3, O4 >  container_type;   ///< underlying intrusive container type
+
+    public:
+        typedef details::boost_intrusive_set_adapter<container_type>   type;  ///< Result of the metafunction
+
+    };
+#else
     template <typename T, typename... BIOptons, typename... Options>
     class adapt< boost::intrusive::splay_set< T, BIOptons... >, Options... >
     {
     public:
-        typedef boost::intrusive::splay_set< T, BIOptons... >  container_type  ;   ///< underlying intrusive container type
+        typedef boost::intrusive::splay_set< T, BIOptons... > container_type  ;   ///< underlying intrusive container type
 
     public:
-        typedef details::boost_intrusive_set_adapter<container_type>   type ;  ///< Result of the metafunction
+        typedef details::boost_intrusive_set_adapter<container_type> type ;  ///< Result of the metafunction
 
     };
+#endif
 }}} // namespace cds::intrusive::striped_set
 //@endcond