Зачем это надо.
Хочу написать свою C++ обертку над средствами передачи данных между потоками RTOS.
Есть несколько средств обмена данными:
1. Queue
https://developer.mbed.org/handbook/RTOS#queue
Позволяет передать данные размером 4 байта. Внутри класса Queue данные приводятся к типу uint32_t.
2. Комбинация Queue и MemoryPool.
https://developer.mbed.org/handbook/RTOS#memorypool
В queue передаем указатель на данные, в MemoryPool сами данные.
Синтаксис помещения и извлечения данных отличается.
Хочу создать общий класс GenericQueue, в который можно помещать данные любого размера (тип данных определяется на этапе компиляции). Если помещаются данных 4 байта - генерится более простой код с Queue. Если данные больше - генерится код с Queue + MemoryPool.
GenericQueue<float, 10> floatQueue;
GenericQueue<double, 5> dobleQueue;
GenericQueue<SomeStruct, 5> structQueue;
Как это сделать?