powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / templated funcrion
10 сообщений из 35, страница 2 из 2
templated funcrion
    #34060491
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего не понял. бестолклвый и слепой. народ спрашивал про инстанцианию, я ответил, ты еще и упомянул про перегруженные функции при наследовании -вроде тоже ответил. теперь ты копаешь еще кудато, приведи пример что-ли, может на коде пойму.
...
Рейтинг: 0 / 0
templated funcrion
    #34060602
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedничего не понял. бестолклвый и слепой. народ спрашивал про инстанцианию, я ответил, ты еще и упомянул про перегруженные функции при наследовании -вроде тоже ответил. теперь ты копаешь еще кудато, приведи пример что-ли, может на коде пойму.

мой вопрос , на который я думал, что получил следуюий ответ:
blindedТам тебе объяснят что это из-за множественного наследования, вдруг ты решишь отнаследоваться от двух классов у каждого из которых есть метод foo(int). Вот чтобы это было можно ответственность свалили на программера

Вообщем, не пойму, почему линкер не ругается, когда встречает две инстанциации одного метода.
...
Рейтинг: 0 / 0
templated funcrion
    #34060744
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
templated funcrion
    #34061741
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone, спасибо! Я в принципе все тоже самое сказал, только может не так четко
...
Рейтинг: 0 / 0
templated funcrion
    #34062462
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barlone тынц

Понял лишь, то что все компиляторы и линковщики решают этот вопрос по своему, и стандартизованные действия для этого не предусмотрны.
...
Рейтинг: 0 / 0
templated funcrion
    #34132961
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedА это очень просто
template<>
void ToolBox::ShowArrayContent<int>(int);
Вот тогда модуле п оявляется код соотвествующей фукции, независимо от того юзаешь ты ее или нет.
..........


Вот сейчас начал опять заморачиваться с темплэйтед методами и решил сделать через явную инстанциацию... имеем в хидаре:
Код: plaintext
1.
2.
3.
4.
5.
6.
class ToolBox
{
public:
template <class T> static bool checkRange(const T &value, const T *range,  unsigned int rangeSize);
}

template <> bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);
При линковке пишет:
Код: plaintext
undefined reference to `bool ToolBox::checkRange<double>(double const&, double const*, unsigned int)'
Если вызываю из того же места не template метод - все ОК => библиотеки подключены в нужном порядке. Че за хрень?
...
Рейтинг: 0 / 0
templated funcrion
    #34133088
Вот сейчас начал опять заморачиваться с темплэйтед методами и решил сделать через явную т...

Код: plaintext
1.
template <> bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);

это явная специализация, а явное инстанцирование вот:

Код: plaintext
1.
template bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);

и оно не должно быть в хедере afaik
...
Рейтинг: 0 / 0
templated funcrion
    #34133273
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Голенков Владимир Вот сейчас начал опять заморачиваться с темплэйтед методами и решил сделать через явную т...

Код: plaintext
1.
template <> bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);

это явная специализация, а явное инстанцирование вот:

Код: plaintext
1.
template bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);

и оно не должно быть в хедере afaik

Теперь тупо выдает не могу слинковать по причине ошибки (ХЗ какой):) Как выясняется это не имеет отношения к вашему посту - глюк у меня где-то. Как разберусь буду пробовать как вы сказали.
Кстати, что происходит при специализации? мы явно говорим что этот метод будет работать с double, но не создаем инстас?
...
Рейтинг: 0 / 0
templated funcrion
    #34133371
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Голенков Владимир Вот сейчас начал опять заморачиваться с темплэйтед методами и решил сделать через явную т...

Код: plaintext
1.
template <> bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);

это явная специализация, а явное инстанцирование вот:

Код: plaintext
1.
template bool ToolBox::checkRange <double> (const double &value, const double *range,  unsigned int rangeSize);

и оно не должно быть в хедере afaik

Теперь тупо выдает не могу слинковать по причине ошибки (ХЗ какой):) Как выясняется это не имеет отношения к вашему посту - глюк у меня где-то. Как разберусь буду пробовать как вы сказали.
Кстати, что происходит при специализации? мы явно говорим что этот метод будет работать с double, но не создаем инстас?
...
Рейтинг: 0 / 0
templated funcrion
    #34133842
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работает, спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / templated funcrion
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]