Шаблоны классов с повторяющимися именами?

Можно ли определить два разных шаблона (по количеству аргументов шаблона) с одинаковым именем?

Вот что я пытаюсь сделать:

namespace MyNamespace
{

template<class TRet>
class FunctionObject
{
    typedef typename TRet ReturnType;
    virtual ReturnType const operator()() const = 0;
};


template<class TRet, class TArg0>
class FunctionObject
{
    typedef typename TRet ReturnType;
    typedef typename TArg0 FirstArgumentType;
    virtual ReturnType const operator()(FirstArgumentType const &arg) const = 0;
};

}

Я получаю сообщение об ошибке, в котором упоминается слишком много шаблонов аргументы в конце закрывающей скобки определения второй структуры FunctionObject .

Я знаю, что это можно сделать на C #, но не был уверен в C ++. Кто-нибудь может пролить свет здесь?

9
задан sbi 27 February 2012 в 18:16
поделиться