Шаблон C ++: хорошо для VC2005SP1, gcc выручает? - PullRequest
1 голос
/ 23 февраля 2009

Я озадачен здесь и прошу вашей помощи. VC2005SP1 проглатывает этот (раздетый) код, но выручает gcc 4.0.1 ... Пожалуйста, укажите мне очевидную ошибку? ТИА!

template<typename BCT, typename UIDT>
class Factory
{
public:
    template<typename CT>
    bool Register(UIDT UniqueID)
    {
        if (UniqueID > 10)
            return(false);

        CreateObject2<BCT, CT>;

        return(true);
    }
};


template <typename MC, typename MT>
class Manager : public Factory<MC, MT>
{
public:
    bool RegisterType(const MT Type, const std::string TypeName)
    {
        return Factory<MC, MT>::Register<MC>(Type); // gcc claims "expected primary-expression before '>' at this point
    }
};

1 Ответ

5 голосов
/ 23 февраля 2009

VS добр.

return Factory<MC, MT>::template Register<MC>(Type); должно работать под обоими компиляторами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...