Если операторы определены пользователем, они могут быть переданы, когда ожидается указатель на функции (члены).Для базовых типов вам может потребоваться написать оболочки, как показано в Xeo.
Вы также можете принять функцию std :: binary_function и использовать std :: plus и т. Д.C ++ 0X с std :: function и lambda.
Но очевидно, что знание более точного, чего вы хотите достичь, поможет.