compile error when using two typename in template class
In this class declaration:

class Test
{
public :
    Test();
    ~Test();
    Map&lt;int, String&gt; *list = new Map&lt;int, String&gt;();
};


This line is wrong:

    Map&lt;int, String&gt; *list = new Map&lt;int, String&gt;();


You can't execute procedural code when declaring a class. That has to go into the constructor or some other function.

For example, this compiles without errors:

Test.h

#ifndef _Test_h
#define _Test_h


#include "Arduino.h"
#include "Map.h"

class Test
{
public :
    Test() { list = new Map&lt;int, String&gt;; } ;
    ~Test();
    Map&lt;int, String&gt; *list;
};

#endif