Moved Const-policy structs from SmartPtr.h to ConstPolicy.h.
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@535 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
1c4109e72d
commit
059eba4ae1
3 changed files with 75 additions and 35 deletions
67
include/loki/ConstPolicy.h
Executable file
67
include/loki/ConstPolicy.h
Executable file
|
@ -0,0 +1,67 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
// The Loki Library
|
||||
// Copyright (c) 2006 Richard Sposato
|
||||
// Copyright (c) 2006 Peter Kümmel
|
||||
// Permission to use, copy, modify, distribute and sell this software for any
|
||||
// purpose is hereby granted without fee, provided that the above copyright
|
||||
// notice appear in all copies and that both that copyright notice and this
|
||||
// permission notice appear in supporting documentation.
|
||||
// The authors make no representations about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef LOKI_CONST_POLICY_INC_
|
||||
#define LOKI_CONST_POLICY_INC_
|
||||
|
||||
// $Header$
|
||||
|
||||
|
||||
namespace Loki
|
||||
{
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @note These policy classes are used in LockingPtr and SmartPtr to define
|
||||
/// how const is propagated from the pointee.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// \class DontPropagateConst
|
||||
///
|
||||
/// \ingroup ConstGroup
|
||||
/// Don't propagate constness of pointed or referred object.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
template< class T >
|
||||
struct DontPropagateConst
|
||||
{
|
||||
typedef T Type;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// \class PropagateConst
|
||||
///
|
||||
/// \ingroup ConstGroup
|
||||
/// Propagate constness of pointed or referred object.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
template< class T >
|
||||
struct PropagateConst
|
||||
{
|
||||
typedef const T Type;
|
||||
};
|
||||
|
||||
// default will not break existing code
|
||||
#ifndef LOKI_DEFAULT_CONSTNESS
|
||||
#define LOKI_DEFAULT_CONSTNESS DontPropagateConst
|
||||
#endif
|
||||
|
||||
} // end namespace Loki
|
||||
|
||||
#endif // end file guardian
|
||||
|
||||
// $Log$
|
||||
// Revision 1.1 2006/02/19 22:04:28 rich_sposato
|
||||
// Moved Const-policy structs from SmartPtr.h to ConstPolicy.h.
|
||||
//
|
Loading…
Add table
Add a link
Reference in a new issue