(_Data_t по смыслу может быть произвольной структурой с "простыми" полями.)
Могу ли я (и если да — то как) теперь ввести через typedef тип функции (не шаблонной), которая в качестве параметра принимает указатель на "произвольный" (то есть "конкретизированный" любым типом) экземпляр THREAD_PARAM<>?
P.S.
Желательная минимальная версия компилятора — VC++ 7.0
[ posted via RSDN@Home 1.1.4 beta 7 r501, accompanied by silence ]
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Могу ли я (и если да — то как) теперь ввести через typedef тип функции (не шаблонной), которая в качестве параметра принимает указатель на "произвольный" (то есть "конкретизированный" любым типом) экземпляр THREAD_PARAM<>?
На самом деле не очень понятно, что ты будешь делать с этим указателем.
Ты же даже не будешь знать размер переданной в качестве параметра структуры THREAD_PARAM<>.
Re[2]: Тип функции, принимающей в качестве параметра шаблон
При этом в "библиотечном" коде используется некий "обобщенный" тип, которому соответствует и MyProc(), и DWORD __stdcall MyProc(THREAD_PARAM<YOUR_DATA>* pParam), etc.
[ posted via RSDN@Home 1.1.4 beta 7 r501, accompanied by silence ]
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Хорошо, "предположим, что задача решена". Мне хочется, чтобы "пользователь" шаблона мог действовать примерно так:
SDB>
SDB>При этом в "библиотечном" коде используется некий "обобщенный" тип, которому соответствует и MyProc(), и DWORD __stdcall MyProc(THREAD_PARAM<YOUR_DATA>* pParam), etc.
Уж не хочешь ли ты экспортировать шаблон MyFunc?
Re[4]: Тип функции, принимающей в качестве параметра шаблон
SchweinDeBurg wrote:
> Здравствуйте, execve, Вы писали: > > E>Вариант 1: > E>Вариант 2: > > Это все понятно, но это — "в обход". > > E>На самом деле не очень понятно, что ты будешь делать с этим указателем. > > Хорошо, "предположим, что задача решена". Мне хочется, чтобы "пользователь" шаблона мог действовать примерно так: > >
> При этом в "библиотечном" коде используется некий "обобщенный" тип, которому соответствует и MyProc(), и DWORD __stdcall MyProc(THREAD_PARAM<YOUR_DATA>* pParam), etc.
Задача типовая. Используй boost::thread:
void my_thread_fun(int a, int b, int c);
// ...
boost::thread(boost::bind(my_thread_fun, 1, 2, 3));
SchweinDeBurg wrote:
> Здравствуйте, MaximE, Вы писали: > > ME>Задача типовая. Используй boost::thread: > > М-м-м... если таки овлечься от потоков... Правильно ли я понимаю, что в C++ нет "прямой" синтаксической конструкции а-ля > >
Здравствуйте, MaximE, Вы писали:
ME>Шаблон ф-ции это еще не ф-ция, а лишь что-то, из чего может быть сгенерирована ф-ция. Адрес шаблона ф-ции взять нельзя.
Безусловно. Но! — вот эти две функции шаблонными не являются, насколько я понимаю:
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Здравствуйте, MaximE, Вы писали:
ME>>Шаблон ф-ции это еще не ф-ция, а лишь что-то, из чего может быть сгенерирована ф-ция. Адрес шаблона ф-ции взять нельзя.
SDB>Безусловно. Но! — вот эти две функции шаблонными не являются, насколько я понимаю:
SDB>