Typedefs inkompatibel machen
-
Hallo
Im Grunde suche ich eine Möglichkeit, mit der ich einem Typen mit vielen Operatoren (das ist in meinem konkreten Fall eine Klasse, kann aber durchaus auch als z.b.
intangesehen werden)typedefen kann aber so dass die neuen Typen nicht impizit in den alten geschweige denn in sich gegenseitig konvertierbar sind.
Formal etwa so:struct ManyOperators { ... }; typedef ManyOperators A; typedef ManyOperators B; typedef ManyOperators C; int main() { ManyOperators m; A a; B b; C c; m = m; // Ok a = a; // Ok m = a; // Fehler c = b; // Fehler }Danke im Voraus.
-
Opaque Typedefs gibts nicht als Sprachfeature. Du könntest dir
BOOST_STRONG_TYPEDEFanschauen.
-
Opaque Typedefs gibts nicht als Sprachfeature
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3515.pdf
-
BOOST_STRONG_TYPEDEF bietet allerdings keinen intutiven Methodenzugriff.
Du kannst aber das Prinzip übernehmen und geeignete Forwardfunktionen schreiben.
-
Enumerationen anyone?
Bei Klassen funzt det nicht, aber bei den beschrieben Integern schon.