#include <stlsoft/util/compiler_optimisation_traits.hpp>
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 } |
| 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
1.5.6