Определения шаблонов вне тела класса

Это нормально. определить виртуальную функцию шаблона класса вне его тела? Виртуальная функция не может быть встроенной, но во избежание множественных определений в единицах компиляции они должны быть помеченыinline (при условии, что заголовки шаблона будут включены в несколько исходных файлов). С другой стороны, компилятор может игнорироватьinlineтак что это кажется действительным. Например, правильный ли приведенный ниже код:

<code>template <typename T>
class C
{
public:
    virtual void f(T val);
};

template <typename T>
inline
void C<T>::f(T val)
{
  //definition
}
</code>

?

Кстати, gcc (3.4.2) позволяет опуститьinline до определения функцииf(T val) но не перед аналогичной функцией регулярного класса. Это только поведение gcc?

Ответы на вопрос(3)

Ваш ответ на вопрос