All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces
SharedPtr.h File Reference

Header file for the SharedPtr smart pointer class. More...

#include <algorithm>
#include <blaze/util/Assert.h>
#include <blaze/util/constraints/Array.h>
#include <blaze/util/NonCopyable.h>
#include <blaze/util/Null.h>
#include <blaze/util/policies/PtrDelete.h>
#include <blaze/util/Types.h>
#include <blaze/util/typetraits/RemoveReference.h>

Go to the source code of this file.

Classes

class  blaze::SharedCountBase
 Base reference counting instance for a particular memory resource.The SharedCountBase class is the shared reference counting instance for a particular memory resource. Once the reference count drops to zero, the memory resource is released and the SharedCountBase instance destroys itself. More...
 
class  blaze::SharedCountImpl< Type >
 Implementation of a reference counting instance for a particular memory resource.The SharedCountImpl class takes responsibility to release the bound memory resource. In case the reference count of the SharedCountBase base class drops to zero, the SharedCountImpl::Destroy() function is called to release the memory. More...
 
class  blaze::RefCount
 Reference count management class for a particular memory resource.The RefCount class manages the reference counting for a shared memory resource. More...
 
class  blaze::SharedPtr< Type >
 Implementation of a shared pointer handle.The SharedPtr class is a RAII class for resource management similar to the std::tr1::shared_ptr class. However, SharedPtr offers only a limited functionality for the purpose of the physics engine. More...
 

Namespaces

namespace  blaze
 Namespace of the Blaze C++ math library.
 

Functions

SharedPtr operators
template<typename L , typename R >
bool blaze::operator== (const SharedPtr< L > &lhs, const SharedPtr< R > &rhs)
 Equality comparison between two SharedPtr objects. More...
 
template<typename Type >
bool blaze::operator== (const SharedPtr< Type > &ptr, const Null &null)
 Equality comparison between a SharedPtr and NULL. More...
 
template<typename Type >
bool blaze::operator== (const Null &null, const SharedPtr< Type > &ptr)
 Equality comparison between NULL and a SharedPtr. More...
 
template<typename L , typename R >
bool blaze::operator!= (const SharedPtr< L > &lhs, const SharedPtr< R > &rhs)
 Inequality comparison between two SharedPtr objects. More...
 
template<typename Type >
bool blaze::operator!= (const SharedPtr< Type > &ptr, const Null &null)
 Inequality comparison between a SharedPtr and NULL. More...
 
template<typename Type >
bool blaze::operator!= (const Null &null, const SharedPtr< Type > &ptr)
 Inequality comparison between NULL and a SharedPtr. More...
 
template<typename L , typename R >
bool blaze::operator< (const SharedPtr< L > &lhs, const SharedPtr< R > &rhs)
 Less-than comparison between two SharedPtr objects. More...
 
template<typename L , typename R >
bool blaze::operator> (const SharedPtr< L > &lhs, const SharedPtr< R > &rhs)
 Greater-than comparison between two SharedPtr objects. More...
 
template<typename Type >
void blaze::swap (SharedPtr< Type > &a, SharedPtr< Type > &b) throw ()
 Swapping the contents of two shared pointers vectors. More...
 

Detailed Description

Header file for the SharedPtr smart pointer class.

Copyright (C) 2011 Klaus Iglberger - All Rights Reserved

This file is part of the Blaze library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with a special exception for linking and compiling against the Blaze library, the so-called "runtime exception"; see the file COPYING. If not, see http://www.gnu.org/licenses/.