Fixed compiler error
[libcds.git] / cds / container / details / make_split_list_set_iterable_list.h
index 9bb3a25624d3642ffcf959e277023b13202e254f..4a505bbe6ff6e519c650cba6cf07cd3506f3a8db 100644 (file)
@@ -1,7 +1,7 @@
 /*
     This file is a part of libcds - Concurrent Data Structures library
 
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
 
     Source code repo: http://github.com/khizmax/libcds/
     Download: http://sourceforge.net/projects/libcds/files/
@@ -51,9 +51,10 @@ namespace cds { namespace container { namespace details {
             value_type  m_Value;
 
             template <typename Q>
-            explicit node_type( Q const& v )
-                : m_Value(v)
+            explicit node_type( Q&& v )
+                : m_Value( std::forward<Q>( v ))
             {}
+
             template <typename Q, typename... Args>
             explicit node_type( Q&& q, Args&&... args )
                 : m_Value( std::forward<Q>(q), std::forward<Args>(args)... )
@@ -114,8 +115,9 @@ namespace cds { namespace container { namespace details {
 
                 size_t operator()(node_type const& v ) const
                 {
-                    return base_class::operator()( key_accessor()( v.m_Value ) );
+                    return base_class::operator()( key_accessor()( v.m_Value ));
                 }
+
                 template <typename Q>
                 size_t operator()( Q const& k ) const
                 {