не использует костыли и прекрасно работает. H>>Может я чего то не понял? A>Просто не хочется делать класс Tester шаблонным. Очень сложный шаблон может получиться, функций типа test несколько и у каждой по несколько параметров
Так и перегрузи их, а не объявляй шаблонными. А имплементацию сделай шаблоном:
Здравствуйте, hramovnik, Вы писали:
H>Здравствуйте, denisko, Вы писали:
D>>Здравствуйте, hramovnik, Вы писали:
H>>>Код из рабочего проекта, так что куски повырезал. Если сильно захочется скомпилить, ты уж, если чего не хватает, добавь D>>Какое отношение этот код имеет к проблеме? Предлагаешь автору для любого чиха шаблон специализировать? Генитальное решение.
H>Я же написал, что просто он попался под руку.
А давай тебе под руку попадется cpp с неспециализированным шаблоном, причем так чтобы минимальный проект компилировался. Уж очень хочется на эту мифическую тварь посмотреть
Все это конечно хорошо, но практического смысла мало..., что если потребуется добавить новый тип?
Нельзя сделать инстанциацию темплейта для заранее неизвестного типа. Выход один добавлять все в хедер-файл.
Об инкапсуляции надо думать в другом месте (кода)
Здравствуйте, alexandrivanovdev, Вы писали:
A>Все это конечно хорошо, но практического смысла мало..., что если потребуется добавить новый тип? A>Нельзя сделать инстанциацию темплейта для заранее неизвестного типа. Выход один добавлять все в хедер-файл. A>Об инкапсуляции надо думать в другом месте (кода)
Есть алгоритмы, которые накладно копи-пастить, проще сделать шаблон для имплементации.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
V>Есть алгоритмы, которые накладно копи-пастить, проще сделать шаблон для имплементации.
Ну так это понятно, просто надо этот шаблон добавить в хедер файл и пусть там лежит например — базовая имплементация для неизвестного типа, несколько имплементаций для различных типов (для которых необходима кастомная имплементация алгоритма). А вот клиентский код будет уже решать какую использовать, может быть даже для какого-то типа придется использовать свою — в клиетском коде.