If you look at DATAMAP, you'll see that this is a type definition. std::map<void*, TEST_D> is a type so you must first create an instance of that type to use it. Try something like:
Code:
DATAMAP d_map;
d_map[por] = data;
Edit:
This makes your code compile:
Code:
#include <map>
struct TEST_D
{
void* por;
int nsize;
void* pn;
TEST_D* pNext;
};
typedef std::map<void*, TEST_D> DATAMAP;
int testData(void* por,int nsize, void* pn = nullptr)
{
TEST_D data;
data.por= por;
data.nsize= nsize;
data.pn= pn;
//Uninitialized scalar variable (UNINIT) uninit_use: Using uninitialized value data. Field data.pNext is uninitialized
DATAMAP d_map;
d_map[por] = data;
return 0;
}