鑑於以下類型特徵,我如何初始化Fields
以及一些std::pair
?如何初始化類型特徵的靜態std :: unordered_map?
template <>
struct ManagerDataTrait<Person>
{
static const std::unordered_map<std::string, std::string> Fields;
// ...
};
我試圖用一個lambda但Visual Studio中說,Fields
是不是可以明確專門的實體。
template <>
const std::unordered_map<std::string, std::string> ManagerDataTrait<Person>::Fields = []{
std::unordered_map<std::string, std::string> fields;
fields.insert(std::make_pair("height", "FLOAT"));
fields.insert(std::make_pair("mass", "FLOAT"));
return fields;
};
如果沒有辦法使用特性靜態成員是這樣,它的替代品我必須存儲在性狀的信息? (Fields
擁有SQL數據庫結構。)
更新:成員也可能是const
但這不應該是重點。
爲了您的拉姆達工作的東西就需要實際_run_拉姆達,但你還沒有嘗試這樣做(你剛剛試圖從lambda構造哈希映射,這是無效的,但肯定不會運行lambda。) –