folgendes Beispiel:Position des Elements bei der Kompilierung
struct mystruct
{
int a;
int b;
int c;
};
int main()
{
mystruct x;
std :: cout << reinterpret_cast <size_t> (&(x.b)) - reinterpret_cast <size_t> (&x) << std :: endl;
}
Was die oben tut, ist reinterpret_cast
s zu verwenden, um die Position des Elements b
im Speicher innerhalb der Struktur mystruct
zu bestimmen. Auf meinem System (und, ich denke, auf jedem vernünftigen System) liefert das obige 4
.
Nun, was ich brauche, ist genau dasselbe zu tun, aber zur Kompilierzeit. Gibt es eine Möglichkeit, so etwas zu tun? Was ich brauche, ist einige static constexpr size_t
, dass zur Kompilierzeit wird mir sagen, was die Position b
innerhalb mystruct
ist.