Перегрузка оператора друга шаблона C ++

Что не так с моим кодом?

template<int E, int F>
class Float
{
 friend Float<E, F> operator+ (const Float<E, F> &lhs, const Float<E, F> &rhs);
};

G ++ просто сохраняет предупреждение:

float.h: 7: предупреждение: объявление друга 'Оператор Float + (const Float &, const Float &) 'объявляет функцию, не являющуюся шаблоном

float.h: 7: warning: (если это не то, что вы планировали, убедитесь, что шаблон функции уже был объявлен и добавьте <> после имени функции здесь) -Wno-non-template-friend отключает это предупреждение

Я пытался добавить <> после имени функции здесь , как указано в предупреждении, но g ++ выдает ошибку.

Я скомпилировал код с помощью clang ++, все прошло нормально, никаких предупреждений.

11
задан Zifei Tong 21 October 2010 в 16:24
поделиться