ФонC++ Размещение Новые шаблоны с
Я работаю на встроенный проект C++, в котором я в здании простой государственной машины с помощью наследования. Идея состоит в том, что каждое состояние наследуется от базового класса State, а диспетчер состояний будет создавать и уничтожать экземпляры подкласса во время переходов состояния. Чтобы избежать использования кучи, я хотел бы использовать размещение нового со статически выделенным массивом.
Вопрос
Как бы один использовать C++ шаблоны, чтобы определить размер самого большого государственного подклассу во время компиляции, для того, чтобы создать нужного размера статического массива? Я знаю, что это возможно, потому что TouchGFX (an embedded C++ GUI library) использует тот же самый метод для управления экземплярами подкласса Presenter и View.
Может быть что-то что-то и в 'union' со всеми возможными экземплярами и размахиванием рук, а затем 'sizeof'' union'? –
Вы действительно избегаете кучи, это на самом деле победа? –
Если вы можете использовать boost, вы можете рассмотреть boost :: variant <>. Но тогда, если вы сможете использовать boost, вы обнаружите, что они уже создали для вас шаблонный конечный автомат: http://www.boost.org/doc/libs/1_55_0/libs/msm/doc/HTML/index.html –