FMI4cpp is a brand new FMI 2.0 implementation for C++. It has been written from the ground up in modern C++. The API is very similar to FMI4j.
All dependencies are available through vcpkg.
#include <iostream> #include <fmi4cpp/fmi2/fmi4cpp.hpp> using namespace fmi4cpp::fmi2; const double stop = 10.0; const double stepSize = 1.0/100; int main() { import::Fmu fmu("path/to/fmu.fmu"); auto slave = fmu.asCoSimulationFmu().newInstance(); auto md = slave->getModelDescription(); auto var = md.getVariableByName("myVar").asReal(); slave->init(); double t; double value; while ( (t = slave->getSimulationTime()) <= stop) { if (slave->doStep(stepSize)!= fmi2OK) { break; } if (var->read(*slave, value) != fmi2OK) { break; } std::cout << var.name() << "=" << value << std::endl; } slave->terminate(); }