#include <iostream>
#include <map>
//using namespace std;

typedef std::string CString; // Test
#define _T(X) X

struct LangEntry
{
   LangEntry()
       :Cause(_T("")), Head(_T("")), Solution(_T(""))
   {}
   LangEntry(CString cause, CString head, CString solution)
       :Cause(cause), Head(head), Solution(solution)
   {}

   CString Cause;
   CString Head;
   CString Solution;
};

/*
struct AlarmEntry
{
/*	AlarmEntry(const std::map<CString, LangEntry>& languages)
	 : Languages(languages)
	{}
* /	
	std::map<CString, LangEntry> Languages;
};
*/

typedef std::map<CString, LangEntry> Languages;

typedef std::map<int, /*AlarmEntry*/ Languages> AlarmEntries;

std::map<CString, LangEntry> entry1 =
 { { "DE", LangEntry("D1", "D2", "D3") }, { "EN", LangEntry("E1", "E2", "E3") } };

AlarmEntries entries =
{
  { 1, entry1 },
  { 2, { { "DE", LangEntry("D1", "D2", "D3") }, { "EN", LangEntry("E1", "E2", "E3") } } }
};

int main() {
	// your code goes here
	return 0;
}