/*
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/
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)... )
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
{