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


я получил ошибку из кода ниже. Что не так? Все вроде бы на месте.

error C2784: 'void Menu::AddLeaf(Command,const int)' : could not deduce template argument for 'Command' from 'LauncherCommandChangeSimulation'

Command.h
template <class Receiver>class Command{    virtual void Execute() = 0;    ...};
LauncherCommand.h
#include "Menu/Command.h"#include "Internal/Launcher.h"class LauncherCommand : public Command<Launcher>{ ... };class LauncherCommandChangeSimulation : public LauncherCommand{ ... };
Menu.h
template <class T>class Command;class Menu{public:    template <class T>    void AddLeaf(Command<T> command, const int parentId);};
Game.cpp
#include "Internal/Launcher.h"#include "Menu/Menu.h"#include "Menu/LauncherCommand.h"LauncherCommandChangeSimulation command(...);menu.AddLeaf(command, ...); // Error here

Если я поменяю звонок на AddLeaf

menu.AddLeaf<Launcher>(command, simsNodeId);

затем я получаю следующую ошибку

error C2770: invalid explicit template argument(s) for 'void Menu::AddLeaf(Command,const int)'