Я создаю библиотеку обработки изображений на C ++ (0x), которая в значительной степени опирается на шаблоны, и меня беспокоит влияние этих шаблонов на время компиляции пользователей.Например, я определил свой класс изображений как ns :: Image, и у меня есть несколько типов пикселей, таких как ns :: PixRGB, ns :: PixRGBA, ns :: PixHSV и т. Д. *
Я будутакже много функций обработки изображений, например
template<class T, class S>
void ns::drawCircle(ns::Image<T> & img, S color, ns::Circle);
Теперь я знаю, что 95% пользователей просто захотят позвонить ns::drawCircle<PixRGB<byte>, PixRGB<byte>>(...)
, поэтому я хотел бы явно создать только некоторые комбинациииз этих типов функций, в то же время позволяя компилятору настраивать все, что я не указал.Это позволит мне сохранить скорость компиляции разделяемой библиотеки и гибкость библиотеки только для заголовков.
Возможен ли такой тип вещей, и если да, то каков синтаксис?