Спасибо за низкоквалифицированых кодеров (около 10ти лет занимался embedded, писал в основном на plain C).
Дело в том, что MyClass(a).func(b) действительно работает медленнее (иногда МНОГО медленнее). Например если таблица виртуальных функций лягла не в ту память, или если MyClass распределен на хипе (а хип соответственно лег не в ту память). Именно из-за сложностей с упревлением размещений в embedded (точнее в той его части где производительность супер-важна) используют С а не ++. А my_struct я могу (как правило) положить туда куда надо. В общем embedded гораздо интереснее — сейчас скучаю. Это порой как складывать интереснейший пазл.
П>Очень часто сидят низкоквалифицированные кодеры, активно надрачивающие на Plain C. В полной уверенности, что my_init(&my_struct, a); my_func(&my_struct, b); my_free(&my_struct); будет работать в стопицот раз быстрее, чем MyClass(a).func(b); Инновации не любят, ибо "а зачем разбираться, и так все работает". Но, возможно, не везде так...