#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