#include <iostream>
#include <string>

template<class T>
class Game
{
public:

    //Game-related
    template <typename U>
    U processEvents(std::string input);

    template <typename U>
    void display(U action);
};

template<class T>
template<class U>
U Game<T>::processEvents(std::string input)
{
    std::cout << "Game::processEvents(\"" << input << "\")\n";
    return U();
    //
}

template<class T>
template<class U>
void Game<T>::display(U action)
{
    std::cout << "Game::Display(" << action << ")\n";
}

int main()
{
    Game<int> game;

    int value = game.processEvents<int>("string1");
    std::string val2 = game.processEvents<std::string>("string2");
    game.display(69);
    game.display("another string");
}