Shadowrun: Awakened 29 September 2011 - Build 871
Classes | Typedefs | Functions | Variables
fastdelegate::detail Namespace Reference

Classes

class  ClosurePtr
struct  DefaultVoidToVoid
struct  DefaultVoidToVoid< DefaultVoid >
union  horrible_union
struct  SimplifyMemFunc
struct  SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE >
struct  VoidToDefaultVoid
struct  VoidToDefaultVoid< void >

Typedefs

typedef void DefaultVoid

Functions

template<class OutputClass , class InputClass >
OutputClass horrible_cast (const InputClass input)
template<class OutputClass , class InputClass >
OutputClass implicit_cast (InputClass input)

Variables

const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)())

Typedef Documentation

Definition at line 220 of file parse/FastDelegate.h.


Function Documentation

template<class OutputClass , class InputClass >
OutputClass fastdelegate::detail::horrible_cast ( const InputClass  input) [inline]

Definition at line 173 of file parse/FastDelegate.h.

References fastdelegate::detail::horrible_union< OutputClass, InputClass >::in, and fastdelegate::detail::horrible_union< OutputClass, InputClass >::out.

Referenced by fastdelegate::detail::ClosurePtr< GenericMemFn, StaticFunctionPtr, UnvoidStaticFunctionPtr >::bindstaticfunc(), fastdelegate::detail::SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE >::Convert(), and fastdelegate::detail::ClosurePtr< GenericMemFn, StaticFunctionPtr, UnvoidStaticFunctionPtr >::GetStaticFunction().

                                                        {
    horrible_union<OutputClass, InputClass> u;
    // Cause a compile-time error if in, out and u are not the same size.
    // If the compile fails here, it means the compiler has peculiar
    // unions which would prevent the cast from working.
    typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) 
        && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1];
    u.in = input;
    return u.out;
}
template<class OutputClass , class InputClass >
OutputClass fastdelegate::detail::implicit_cast ( InputClass  input) [inline]

Definition at line 152 of file parse/FastDelegate.h.

                                                  {
    return input;
}

Variable Documentation

const int fastdelegate::detail::SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)())

Definition at line 274 of file parse/FastDelegate.h.


Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net