jetzt schaut das schon besser aus, trotzdem noch ein fehler
http://coliru.stacked-crooked.com/a/f23314a617642eb0
http://coliru.stacked-crooked.com/a/f23314a617642eb0
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
auto *mp1 = boost::get<boost::recursive_wrapper<cmd_varset<TypeDouble<int>>>>(&exp1);
auto *mp2 = boost::get<boost::recursive_wrapper<cmd_varset<TypeDouble<int>>>>(&exp2);
auto *mp3 = boost::get<boost::recursive_wrapper<cmd_varset<TypeDouble<int>>>>(&mp1);
exp1 ist schon ein Pointer. Das & macht daraus **, sodass als Templateargument ein Pointer erwartet wird. Nimm das & weg.main.cpp:72:91: error: no matching function for call to 'get<boost::recursive_wrapper<kallup::cmd_varset<kallup::TypeDouble<int> > > >(boost::recursive_wrapper<kallup::cmd_varset<kallup::TypeDouble<int> > >**)'
auto *mp1 = boost::get<boost::recursive_wrapper<cmd_varset<TypeDouble<int>>>>((&exp1));
ich bekomme noch die Krise - wie komm ich auf die "double" Werte von TypeDouble<int>?
auto t = TypeDouble<int>();
auto val = t.value;
Weil es nicht muss? Die Klammern machen gar nichts.jetzt frag mich aber nicht warum exp1 in Klammern stehen muss.
Und später, bei ex1: Das ist nicht mal definiert...g++ hat gesagt.:note: no known conversion for argument 1 from 'boost::recursive_wrapper<kallup::cmd_varset<kallup::TypeDouble<int> > >*' to 'kallup::TypeDouble<int>'
TypeDouble<int> td = exp; soeben ausprobiert und es funktioniert...TypeDouble<int> td; td = exp;