Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:30

0001 // -*- C++ -*-
0002 //
0003 // Ptr.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 #ifndef ThePEG_Ptr_H
0010 #define ThePEG_Ptr_H
0011 // This is the declaration of the Ptr class.
0012 
0013 #include "RCPtr.fh"
0014 
0015 namespace ThePEG {
0016 
0017 /** The namespace for the reference counted pointer classes */
0018 namespace Pointer {
0019 
0020 /**
0021  * Ptr is a templated class to provide typedefs for pointers types
0022  * ThePEG should use for a given type. If you want to use ThePEG with
0023  * another kind of (smart) pointers than those provided you have to
0024  * provide an alternative ThePEG.h file which includes an alternative
0025  * Ptr class. It may also be possible to specialize this Ptr class for
0026  * using different pointer classes for different classes.
0027  *
0028  * @see RCPtr
0029  * @see ConstRCPtr
0030  * @see TransientRCPtr
0031  * @see TransientConstRCPtr
0032  * 
0033  */
0034 template <typename T>
0035 struct Ptr {
0036 
0037   /** Template argument typedef. */
0038   typedef RCPtr<T> pointer;
0039   /** Template argument typedef. */
0040   typedef ConstRCPtr<T> const_pointer;
0041   /** Template argument typedef. */
0042   typedef TransientRCPtr<T> transient_pointer;
0043   /** Template argument typedef. */
0044   typedef TransientConstRCPtr<T> transient_const_pointer;
0045   /** Template argument typedef. */
0046   typedef pointer ptr;
0047   /** Template argument typedef. */
0048   typedef const_pointer cptr;
0049   /** Template argument typedef. */
0050   typedef transient_pointer tptr;
0051   /** Template argument typedef. */
0052   typedef transient_const_pointer tcptr;
0053   /** Template argument typedef. */
0054   typedef pointer p;
0055   /** Template argument typedef. */
0056   typedef const_pointer cp;
0057   /** Template argument typedef. */
0058   typedef transient_pointer tp;
0059   /** Template argument typedef. */
0060   typedef transient_const_pointer tcp;
0061 
0062 };
0063 
0064 }
0065 }
0066 
0067 #endif /* ThePEG_Ptr_H */