compiler_optimisation_traits Struct Reference
[Utility Library]

#include <stlsoft/util/compiler_optimisation_traits.hpp>

List of all members.


Detailed Description

traits class for (current) compiler

Public Types

enum  { supportsEBO1 = sizeof(compiler_optimisation_traits_ebo_thin_child) == sizeof(compiler_optimisation_traits_ebo_parent) }
 1. With empty base and empty child More...
enum  { supportsEBO2 = sizeof(compiler_optimisation_traits_ebo_thick_child) == sizeof(compiler_optimisation_traits_ebo_thick_peer) }
 2. With empty base and non-empty child More...
enum  { supportsEBO3 = sizeof(compiler_optimisation_traits_ebo_thin_grandchild) == sizeof(compiler_optimisation_traits_ebo_parent) }
 3. With empty base, empty intermediate, and empty child More...
enum  { supportsEBO4 = sizeof(compiler_optimisation_traits_ebo_thick_grandchild) == sizeof(compiler_optimisation_traits_ebo_thick_peer) }
 4. With empty base, empty intermediate, and non-empty child More...
enum  { supportsEBO5 = sizeof(compiler_optimisation_traits_ebo_mi_thin_child) == sizeof(compiler_optimisation_traits_ebo_parent) }
 5. With two empty bases and empty child More...
enum  { supportsEBO6 = sizeof(compiler_optimisation_traits_ebo_mi_thick_child) == sizeof(compiler_optimisation_traits_ebo_thick_peer) }
 6. With two empty bases and non-empty child More...
enum  { supportsEBO7 = sizeof(compiler_optimisation_traits_ebo_mi_mixin_child) == sizeof(compiler_optimisation_traits_ebo_thick_peer) }
 7. With one empty base (the mixin), one non-empty base and empty child More...
enum  { supportsEBO = supportsEBO1 & supportsEBO2 & supportsEBO3 & supportsEBO4 }
enum  { supportsMIEBO = supportsEBO5 & supportsEBO6 & supportsEBO7 }
enum  { supportsExtendedEBO = supportsEBO & supportsMIEBO }
enum  { supportsEDO1 = supportsEBO1 }
 1. With empty base (same as EBO1) More...
enum  { supportsEDO2 = sizeof(compiler_optimisation_traits_edo_child<compiler_optimisation_traits_edo_thin_base>) == sizeof(compiler_optimisation_traits_edo_thin_base) }
 2. With empty base (same as EBO1); child is template More...
enum  { supportsEDO3 = sizeof(compiler_optimisation_traits_edo_child_of_thick_base) == sizeof(compiler_optimisation_traits_edo_thick_base) }
 3. With non-empty base More...
enum  { supportsEDO4 = sizeof(compiler_optimisation_traits_edo_child<compiler_optimisation_traits_edo_thick_base>) == sizeof(compiler_optimisation_traits_edo_thick_base) }
 4. With non-empty base; child is template More...
enum  { supportsEDO5 = supportsEBO5 }
 5. With two empty bases More...
enum  { supportsEDO6 = sizeof(compiler_optimisation_traits_edo_mi_child<compiler_optimisation_traits_edo_thin_base, compiler_optimisation_traits_edo_thin_base2>) == sizeof(compiler_optimisation_traits_edo_thin_base) }
 6. With two empty bases; child is template More...
enum  { supportsEDO7 = supportsEBO7 }
 7. With one empty base (the mixin), one non-empty base More...
enum  { supportsEDO8 = sizeof(compiler_optimisation_traits_edo_mi_child<compiler_optimisation_traits_edo_thick_base, compiler_optimisation_traits_edo_thin_base>) == sizeof(compiler_optimisation_traits_edo_thick_base) }
 8. With one empty base (the mixin), one non-empty base; child is template More...
enum  { supportsEDO = supportsEDO1 & supportsEDO2 & supportsEDO3 & supportsEDO4 }
enum  { supportsMIEDO = supportsEDO5 & supportsEDO6 & supportsEDO7 & supportsEDO8 }
enum  { supportsExtendedEDO = supportsEDO & supportsMIEDO }

Member Enumeration Documentation

anonymous enum

1. With empty base and empty child

anonymous enum

2. With empty base and non-empty child

anonymous enum

3. With empty base, empty intermediate, and empty child

anonymous enum

4. With empty base, empty intermediate, and non-empty child

anonymous enum

5. With two empty bases and empty child

anonymous enum

6. With two empty bases and non-empty child

anonymous enum

7. With one empty base (the mixin), one non-empty base and empty child

anonymous enum

1. With empty base (same as EBO1)

anonymous enum

2. With empty base (same as EBO1); child is template

anonymous enum

3. With non-empty base

anonymous enum

4. With non-empty base; child is template

anonymous enum

5. With two empty bases

anonymous enum

6. With two empty bases; child is template

anonymous enum

7. With one empty base (the mixin), one non-empty base

anonymous enum

8. With one empty base (the mixin), one non-empty base; child is template


The documentation for this struct was generated from the following file:

Generated on Thu Jun 10 08:59:02 2010 for STLSoft by  doxygen 1.5.6