Mirror reflection library 0.5.13
Classes | Namespaces | Typedefs | Functions

mirror/raw_ptr/raw_ptr.hpp File Reference

Definition of raw_ptr class for safer working with untyped pointers. More...

#include <cstdlib>
#include <memory>
#include <mirror/config.hpp>
#include <mirror/meta_prog/identity.hpp>
#include <mirror/raw_ptr/auditor.hpp>
#include <mirror/raw_ptr/type_info_cmp.hpp>
#include <exception>
Include dependency graph for raw_ptr.hpp:

Go to the source code of this file.

Classes

class  mirror::raw_ptr_templ< Auditor, BadCastPolicy, BasePtrType >
 Raw pointer template using a custom type comparator and a bad cast policy. More...

Namespaces

namespace  mirror
 

All Mirror's types, classes, functions, etc. are defined in this namespace.


Typedefs

typedef aux::type_info_cmp mirror::default_type_cmp
typedef
aux::abort_at_bad_cast_policy 
mirror::default_bad_cast_policy
typedef raw_ptr_templ
< aux::ptr_cast_auditor
< default_type_cmp >
, default_bad_cast_policy,
void * > 
mirror::raw_ptr
 The basic raw pointer type.
typedef raw_ptr_templ
< aux::ptr_cast_auditor
< default_type_cmp >
, default_bad_cast_policy,
std::shared_ptr< void >> 
mirror::shared_raw_ptr
 Raw pointer type with shared-ownership.
typedef raw_ptr_templ
< aux::ptr_cast_auditor
< default_type_cmp >
, default_bad_cast_policy,
std::unique_ptr< void >> 
mirror::unique_raw_ptr
 Raw pointer type with unique-ownership.

Functions

template<typename T , class Auditor , class BadCastPolicy , typename BasePtrType >
mirror::raw_cast (raw_ptr_templ< Auditor, BadCastPolicy, BasePtrType > &a_ptr)
template<typename T , class Auditor , class BadCastPolicy , typename BasePtrType >
mirror::raw_cast (const raw_ptr_templ< Auditor, BadCastPolicy, BasePtrType > &a_ptr)
template<typename T , class Auditor , class BadCastPolicy , typename BasePtrType >
mirror::raw_cast (raw_ptr_templ< Auditor, BadCastPolicy, BasePtrType > &&a_ptr)

Detailed Description

Definition of raw_ptr class for safer working with untyped pointers.

Copyright 2007-2010 Matus Chochlik. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


Copyright © 2006-2011 Matus Chochlik, University of Zilina, Zilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Fri Dec 16 2011 by Doxygen (version 1.7.3).
Important note: Although the 'boostified' version of Mirror uses the Boost C++ libraries Coding Guidelines and is implemented inside of the boost namespace, it IS NOT an officially reviewed and accepted Boost library. Mirror is being developed with the intention to be submitted for review for inclusion to the Boost C++ libraries.