2014-07-16 83 views
0

我有應用程序,讀取大的std ::地圖,是某些腳本生成 其大小400 - 600元件
現在這個STD地圖被生成由腳本 有些事情是這樣的:C++如何包括源代碼生成映射到應用預編譯階段

expressionsMap.insert(std::pair<int, std::string>(1,"string1")); 
expressionsMap.insert(std::pair<int, std::string>(2,"string1")); 
expressionsMap.insert(std::pair<int, std::string>(3,"string1")); 
expressionsMap.insert(std::pair<int, std::string>(4,"string1")); 
... 
... 
... 
... 
expressionsMap.insert(std::pair<int, std::string>(5,"string400")); 

的expressionsMap映射在我的應用程序頭文件中定義

typedef std::map<int,std::string> ExpressionsMap; 
class LevelsManager 
{ 
private: 
    ExpressionsMap expressionsMap; 
} 

現在在源文件中我想包括屬ted文件(手動) ,因此映射的定義將成爲C++源文件的一部分。
在列表中,編譯器將會像這樣看到它。
IM尋找跨平臺的解決方案

回答

1

如何使expressionsMap的指針,在構造它設置爲NULL,並初始化它在第一次使用(調用一個包含生成的代碼的#include功能)?

+0

我需要包括什麼?只是簡單的* .h「文件? 與表達式裏面? – user63898

+0

你只需要包含生成的文件。因此如果生成的包含所有插入語句的文件被稱爲」generated_inserts.h「,那麼你的函數就有一個include語句,如#include 「generated_inserts.h」 –

+0

請注意,如果將表達式映射更改爲指針,則需要將生成的代碼從使用中更改爲 - > –

相關問題