Torque 3D 3.7
ContentsIndexHome
PreviousUpNext
fastdelegate::detail Namespace

An outer class, FastDelegateN<>, handles the invoking and creates the necessary typedefs. This class does everything else.

Name 
Description 
The following table lists classes in this documentation. 
The following table lists structs, records, enums in this documentation. 
The following table lists types in this documentation. 
The following table lists variables in this documentation. 
The following table lists macros in this documentation. 
 
Name 
Description 
 
This is class fastdelegate::detail::ClosurePtr. 
 
Translate from 'DefaultVoid' to 'void'. Everything else is unchanged 
 
This is class fastdelegate::detail::DefaultVoidToVoid<DefaultVoid>. 
 
...but for Codeplay, an empty class *always* gives 4 byte pointers. If compiled with the /clr option ("managed C++"), the JIT compiler thinks it needs to load GenericClass before it can call any of its functions, (compiles OK but crashes at runtime!), so we need to declare an empty class to make it happy. Codeplay and VC4 can't cope with the unknown_inheritance case either. 
 
Define a generic class that uses virtual inheritance. It has a trival member function that returns the value of the 'this' pointer. 
 
general case -- don't know how to convert it. Force a compile failure 
 
__multiple_inheritance classes go here Nasty hack for Microsoft and Intel (IA32 and Itanium) 
 
virtual_inheritance classes go here 
 
Nasty hack for Microsoft and Intel (IA32 and Itanium) unknown_inheritance classes go here This is probably the ugliest bit of code I've ever written. Look at the casts! There is a compiler bug in MSVC6 which prevents it from using this code. 
 
For compilers where all member func ptrs are the same size, everything goes here. For non-standard compilers, only single_inheritance classes go here. 
 
Translate from 'void' into 'DefaultVoid' Everything else is unchanged 
 
This is class fastdelegate::detail::VoidToDefaultVoid<void>. 
Name 
Description 
Backwards compatibility: This macro used to be necessary in the virtual inheritance case for Intel and Microsoft. Now it just forward-declares the class. 
 
Name 
Description 
 
This union is declared outside the horrible_cast because BCC 5.5.1 can't inline a function with a nested class, and gives a warning. 
 
In VC++ and ICL, a virtual_inheritance member pointer is internally defined as: 
Name 
Description 
On any other compiler, just use a normal void. 
Name 
Description 
The size of a single inheritance member function pointer. 
Copyright (c) 2015. All rights reserved.
What do you think about this topic? Send feedback!