Показать сообщение отдельно
Старый 25.04.2005, 00:11   #1   
Форумец
 
Аватар для Necromant
 
Сообщений: 19
Регистрация: 20.02.2005
Возраст: 43

Necromant вне форума Не в сети
Адрес функции-шаблона (C++)

Товарищи, вот скажите, можно ли как-нибудь полусить адрес функции-шаблона? Т.е., например есть:
template<class N> void Function(const N &_n){/*...*/}
Нужно получить &Function. Так просто злобный C++ указателей не раздает - мол, нет еще такой функции. Вполне с ним согласен, и правда нет. Но вот после инстанцирования функция-шаблон обретает тело и, теоретически, можно узнать, где это тело начинается. Вот только как?

Отвечаю заранее, зачем это нужно.
Есть некий шаблон класса:
template<class N>
class Class
{};

Этот самый Class создает свой собственный поток (thread) через AfxBeginThread, в котором, разумеется, нужно работать с этим классом. Но! Т.к. класс представляет собой шаблон, то и рабочая функция потока должна знать тип N, то есть тоже д.б. шаблоном. Вот тут и вылезает злой карлик: AfxBeginThread нужно передать адрес функции-шаблона.

Отвечаю заранее: Труп Страуса ответа на этот вопрос не дает.
Заранее премного благодарен.
  Ответить с цитированием