C ++模板:好的VC2005SP1,gcc拯救了吗?

时间:2009-02-23 15:30:43

标签: visual-c++ gcc templates

我很困惑,请求你的帮助。 VC2005SP1吞下这个(剥离的)代码,但是gcc 4.0.1拯救了...请指出我明显的错误? TIA!

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 个答案:

答案 0 :(得分:5)

VS很善良。

return Factory<MC, MT>::template Register<MC>(Type);应该在两个编译器下工作。