Source code repo: http://github.com/khizmax/libcds/
Download: http://sourceforge.net/projects/libcds/files/
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef CDSLIB_CONTAINER_RWQUEUE_H
bool enqueue( value_type const& data )
{
scoped_node_ptr p( alloc_node( data ));
- if ( enqueue_node( p.get() )) {
+ if ( enqueue_node( p.get())) {
p.release();
return true;
}
bool enqueue( value_type&& data )
{
scoped_node_ptr p( alloc_node_move( std::move( data )));
- if ( enqueue_node( p.get() ) ) {
+ if ( enqueue_node( p.get()) ) {
p.release();
return true;
}
template <typename Func>
bool enqueue_with( Func f )
{
- scoped_node_ptr p( alloc_node() );
+ scoped_node_ptr p( alloc_node());
f( p->m_value );
- if ( enqueue_node( p.get() )) {
+ if ( enqueue_node( p.get())) {
p.release();
return true;
}
bool emplace( Args&&... args )
{
scoped_node_ptr p( alloc_node_move( std::forward<Args>(args)... ));
- if ( enqueue_node( p.get() )) {
+ if ( enqueue_node( p.get())) {
p.release();
return true;
}