G4AnyMethod Class Reference

#include <G4AnyMethod.hh>


Public Member Functions

 G4AnyMethod ()
template<class S, class T>
 G4AnyMethod (S(T::*f)())
template<class S, class T, class A0>
 G4AnyMethod (S(T::*f)(A0))
template<class S, class T, class A0, class A1>
 G4AnyMethod (S(T::*f)(A0, A1))
 G4AnyMethod (const G4AnyMethod &other)
 ~G4AnyMethod ()
G4AnyMethodSwap (G4AnyMethod &rhs)
template<class S, class T>
G4AnyMethodoperator= (S(T::*f)())
template<class S, class T, class A0>
G4AnyMethodoperator= (S(T::*f)(A0))
template<class S, class T, class A0, class A1>
G4AnyMethodoperator= (S(T::*f)(A0, A1))
G4AnyMethodoperator= (const G4AnyMethod &rhs)
bool Empty () const
void operator() (void *obj)
void operator() (void *obj, const std::string &a0)
size_t NArg () const
const std::type_info & ArgType (size_t n=0) const

Data Structures

struct  FuncRef
struct  FuncRef1
struct  FuncRef2
class  Placeholder


Detailed Description

This class represents any object method. The class only holds a member pointer.

Definition at line 67 of file G4AnyMethod.hh.


Constructor & Destructor Documentation

G4AnyMethod::G4AnyMethod (  )  [inline]

contructor

Definition at line 70 of file G4AnyMethod.hh.

Referenced by operator=().

00070 : fContent(0), narg(0) {}

template<class S, class T>
G4AnyMethod::G4AnyMethod ( S(T::*)()  f  )  [inline]

Definition at line 71 of file G4AnyMethod.hh.

00071                                                      : narg(0) {
00072     fContent = new FuncRef<S,T>(f);
00073   }

template<class S, class T, class A0>
G4AnyMethod::G4AnyMethod ( S(T::*)(A0)  f  )  [inline]

Definition at line 74 of file G4AnyMethod.hh.

00074                                                                  : narg(1) {
00075     fContent = new FuncRef1<S,T,A0>(f);
00076   }

template<class S, class T, class A0, class A1>
G4AnyMethod::G4AnyMethod ( S(T::*)(A0, A1)  f  )  [inline]

Definition at line 77 of file G4AnyMethod.hh.

00077                                                                               : narg(2) {
00078     fContent = new FuncRef2<S,T,A0,A1>(f);
00079   }

G4AnyMethod::G4AnyMethod ( const G4AnyMethod other  )  [inline]

Definition at line 80 of file G4AnyMethod.hh.

00080                                        :
00081   fContent(other.fContent ? other.fContent->Clone() : 0),narg(other.narg) {}

G4AnyMethod::~G4AnyMethod (  )  [inline]

destructor

Definition at line 83 of file G4AnyMethod.hh.

00083                  {
00084     delete fContent;
00085   }


Member Function Documentation

const std::type_info& G4AnyMethod::ArgType ( size_t  n = 0  )  const [inline]

Definition at line 128 of file G4AnyMethod.hh.

References CLHEP::detail::n.

00128                                                   {
00129     return fContent ? fContent->ArgType(n) : typeid(void);
00130   }

bool G4AnyMethod::Empty (  )  const [inline]

Query

Definition at line 115 of file G4AnyMethod.hh.

00115                      {
00116     return !fContent;
00117   }

size_t G4AnyMethod::NArg (  )  const [inline]

Number of arguments

Definition at line 126 of file G4AnyMethod.hh.

Referenced by G4GenericMessenger::DeclareMethod().

00126 { return narg; }

void G4AnyMethod::operator() ( void *  obj,
const std::string &  a0 
) [inline]

Definition at line 122 of file G4AnyMethod.hh.

00122                                                   {
00123     fContent->operator()(obj, a0);
00124   }

void G4AnyMethod::operator() ( void *  obj  )  [inline]

call operator

Definition at line 119 of file G4AnyMethod.hh.

00119                              {
00120     fContent->operator()(obj);
00121   }

G4AnyMethod& G4AnyMethod::operator= ( const G4AnyMethod rhs  )  [inline]

Asigment operator

Definition at line 109 of file G4AnyMethod.hh.

References G4AnyMethod(), and narg.

00109                                                   {
00110     G4AnyMethod(rhs).Swap(*this);
00111     narg = rhs.narg;
00112     return *this;
00113   }

template<class S, class T, class A0, class A1>
G4AnyMethod& G4AnyMethod::operator= ( S(T::*)(A0, A1)  f  )  [inline]

Definition at line 103 of file G4AnyMethod.hh.

References G4AnyMethod().

00103                                                                                            {
00104     G4AnyMethod(f).Swap(*this);
00105     narg = 1;
00106     return *this;
00107   }

template<class S, class T, class A0>
G4AnyMethod& G4AnyMethod::operator= ( S(T::*)(A0)  f  )  [inline]

Definition at line 98 of file G4AnyMethod.hh.

References G4AnyMethod().

00098                                                                              {
00099     G4AnyMethod(f).Swap(*this);
00100     narg = 1;
00101     return *this;
00102   }

template<class S, class T>
G4AnyMethod& G4AnyMethod::operator= ( S(T::*)()  f  )  [inline]

Asignment operator

Definition at line 93 of file G4AnyMethod.hh.

References G4AnyMethod().

00093                                                                   {
00094     G4AnyMethod(f).Swap(*this);
00095     narg = 0;
00096     return *this;
00097   }

G4AnyMethod& G4AnyMethod::Swap ( G4AnyMethod rhs  )  [inline]

Definition at line 87 of file G4AnyMethod.hh.

References fContent, and narg.

00087                                       {
00088     std::swap(fContent, rhs.fContent);
00089     std::swap(narg, rhs.narg);
00090     return *this;
00091   }


The documentation for this class was generated from the following file:
Generated on Mon May 27 17:51:28 2013 for Geant4 by  doxygen 1.4.7