Цитата(sigmaN @ Jan 12 2017, 12:07)

Имеется ввиду "использование" шаблона? т.е. в .cpp например объявляем переменную templClass<char> charTemplateVar;
Код
Задача - писать в архив(ы) записи различных форматов соотв-их,
например, различным событиям или лог-записям.
Автоматизация/аналог ручного использования reinterpret_cast.
--------------- Events.hpp ------------------
class CLog
{
. . . . .
int Put_SER_PageFlash_E( int ); метод записи для событий вида LOG
. . . . .
};
class CEvents32
{
. . . . .
int Put_SER_PageFlash_E( int ); метод записи для "флаговых" событий
. . . . .
};
---------------- Archive.hpp --------------------
class CArchive
{
public:
. . . . .
. . . . .
. . . . .
template <typename TPL_EventT> int PutToArchive_B( int n, TPL_EventT * obj_ptr )
{
a_page = buf_base + p_WR;
ret_45 = AT45_PageIsEmpty( a_page , 264, 1); // Empty == 1 ?
if( ret_45 != 1 )
return(-200);
else
{
ret_45 = obj_ptr->Put_SER_PageFlash_E( a_page );
if( ret_45 > 0 )
{
ForwardIndex();
return(1);
}
else
return(ret_45);
}
}
. . . .
. . . .
CArchive( int r_size ) { . . . . . };
~CArchive(void) { };
};
----------- вызовы из модулей -------------
(1) модуль 1
// тип Type(EV_Alarm32_1) == CEvents32
retCode_2 = ARH_Event.PutToArchive_B( 0, &EV_Alarm32_1); пишем флаги 32 бит
(2) модуль 2
// тип Type(EV_Log_1) == CLog
retCodeARH = ARH_Event.PutToArchive_B( 1, &EV_Log_1 ); пишем литерал