![]() |
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... | |
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/.