Евгений Шатунов а при таком подходе в частично специализированных шаблонах будут доступны методы обобщенного шаблона? Или все равно придётся переписывать? И можете, пожалуйста, пояснить в вашем примере в чем именно заключается частное инстанцирование? Это разве не просто частичная специализация?
Евгений Шатунов, спасибо за ответ! К сожалению, рядом нет компьютера, где написан класс. Но суть такова: если шаблон инициализирован стандартным типом (а именно: char, short, int, long, long long), то должны срабатывать «общие» конструкторы и операции (то есть по сути, для каждого из этих типов класс имеет идентичный вид). А если подаётся пользовательский тип (имя его заранее неизвестно), то должны вызваться другие конструкторы и операции.
6elkka, мне кажется Вы не совсем правы. При Вашем подходе создастся временный объект и для него будет применен sub. Если отсутсвует левосторонне присваивание перед c.sum(a).sub(b), то объект пропадет. А мне необходимо, чтобы изменения проходили для объекта c, а не для какого-то иного. Вот решение 0xD34F подходит.
jcmvbkbc, программе подается число (возможно очень большое), нужно просуммировать все числа до этого числа и найти остаток от деления от числа, которое также подается программе. Если первым параметром дать большое число, то программа выполняется очень долго. Из мыслей заменить % на бинарные операции