Шаблон функции дружбы с шаблоном класса

Я получаю ошибку компоновщика, когда пытаюсь создать исполняемый файл из следующего кода. У меня сложилось впечатление, что мне нужно разместить несколько « typename » или сделать несколько предварительных объявлений; Я пробовал несколько комбинаций, но ни одна из них не сработала.

template<typename T>
class enabled
{
  private:
    T type_;
    friend const T& typeof(const enabled<T>& obj); // Offending line
};

template<typename T>
const T& typeof(const enabled<T>& obj) {
    return obj.type_;
}


int main()
{
    enabled<std::string> en;
    std::cout << typeof(en);

    std::cin.clear(), std::cin.get();
    return 0;
}

1> main.obj: ошибка LNK2001: неразрешенный внешний символ "class std :: string const & __cdecl typeof (class enabled const &)"

6
задан Paul Manta 29 October 2011 в 18:25
поделиться