@@ -67,35 +67,43 @@ namespace fmu4cpp {
6767 }
6868
6969 IntVariable fmu_base::integer (const std::string &name, int *ptr, const std::function<void (int )> &onChange) {
70- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
70+ const auto vr = static_cast <unsigned int >(numVariables_++);
71+ return {name, vr, numVariables_, ptr, onChange};
7172 }
7273
7374 IntVariable fmu_base::integer (const std::string &name, const std::function<int ()> &getter, const std::optional<std::function<void(int )>> &setter) {
74- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
75+ const auto vr = static_cast <unsigned int >(numVariables_++);
76+ return {name, vr, numVariables_, getter, setter};
7577 }
7678
7779 RealVariable fmu_base::real (const std::string &name, double *ptr, const std::function<void (double )> &onChange) {
78- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
80+ const auto vr = static_cast <unsigned int >(numVariables_++);
81+ return {name, vr, numVariables_, ptr, onChange};
7982 }
8083
8184 RealVariable fmu_base::real (const std::string &name, const std::function<double ()> &getter, const std::optional<std::function<void(double )>> &setter) {
82- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
85+ const auto vr = static_cast <unsigned int >(numVariables_++);
86+ return {name, vr, numVariables_, getter, setter};
8387 }
8488
8589 BoolVariable fmu_base::boolean (const std::string &name, bool *ptr, const std::function<void (bool )> &onChange) {
86- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
90+ const auto vr = static_cast <unsigned int >(numVariables_++);
91+ return {name, vr, numVariables_, ptr, onChange};
8792 }
8893
8994 BoolVariable fmu_base::boolean (const std::string &name, const std::function<bool ()> &getter, const std::optional<std::function<void(bool )>> &setter) {
90- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
95+ const auto vr = static_cast <unsigned int >(numVariables_++);
96+ return {name, vr, numVariables_, getter, setter};
9197 }
9298
9399 StringVariable fmu_base::string (const std::string &name, std::string *ptr, const std::function<void (std::string)> &onChange) {
94- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, ptr, onChange};
100+ const auto vr = static_cast <unsigned int >(numVariables_++);
101+ return {name, vr, numVariables_, ptr, onChange};
95102 }
96103
97104 StringVariable fmu_base::string (const std::string &name, const std::function<std::string()> &getter, const std::optional<std::function<void(std::string)>> &setter) {
98- return {name, static_cast <unsigned int >(numVariables_), ++numVariables_, getter, setter};
105+ const auto vr = static_cast <unsigned int >(numVariables_++);
106+ return {name, vr, numVariables_, getter, setter};
99107 }
100108
101109 void fmu_base::register_variable (IntVariable v) {
0 commit comments