Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > статический полиморфизм


Автор: korian 18.3.2008, 09:45
вобщем-то сабж.
вообще не могу придумать вариантов, когда есть смысл его использовать.
 smile 

Автор: Daevaorn 18.3.2008, 09:55
Когда нет смысла в динамическом или он избыточен

Автор: MAKCim 18.3.2008, 10:01
читать Александреску

Автор: Lazin 18.3.2008, 10:11
если не знаешь где его использовать лучше не используй, только навредишь

простейший пример

Код

template<typename F_tor>
void apply_fn(F_tor& f)
{
     f(data);
}


здесь F_tor - любой функтор, имеющий определенную сигнатуру... без шаблона пришлось бы писать для него базовый класс (или использовать std::unary_function), а так метод перегружается для каждого типа аргумента.. удобно))

а вообще в таких случаях лучше использовать boost::function

Автор: Alek86 18.3.2008, 10:30
а перегрузка функций - это, случайно, не 1 из видов статического полиморфизма?
как и шаблоны...

Автор: korian 18.3.2008, 14:10
Цитата(Lazin @  18.3.2008,  09:11 Найти цитируемый пост)
если не знаешь где его использовать лучше не используй, только навредишь

ну значит на этом и остановимся пока  smile 
и почитаем 
Цитата(MAKCim @  18.3.2008,  09:01 Найти цитируемый пост)
Александреску


Автор: Earnest 18.3.2008, 15:47
Цитата(Lazin @  18.3.2008,  11:11 Найти цитируемый пост)
а вообще в таких случаях лучше использовать boost::function

Не, оно содержит виртуальные методы, т.е. производительность того... страдает немного... Т.е. если можно и удобно использовать шаблонный метод, лучше так и делать, есть шанс встроить. А boost::function дает возможность обойтись без шаблонов и спрятать код...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)