看板 C_and_CPP 關於我們 聯絡資訊
自己回自己,之前原來是自己在CMakefile搞了一個大烏龍 所以本來該working的code被誤以為會吐出一狗票錯誤 順便寫一下這篇來感嘆boost 讚嘆boost一下,這真的還挺神奇的 Code都很短也可驗證 所以就不特地貼gist了 前提 : typedef boost::variant<std::string, double, int> ValueType; std::map<std::string, ValueType> map; map裡面塞進一些資料 map.insert(std::make_pair("StringValue", "this is string!")); map.insert(std::make_pair("intValue", 12345)); 對map做serialize std::ofstream ofs(folder); boost::archive::text_oarchive ar(ofs); ar << map; ofs.close(); 對map做deserialize std::map<std::string, ValueType> map2; std::ifstream ifs(folder); boost::archive::text_iarchive ar(ifs); ar >> map2; ifs.close(); 這樣就可以了,也就是說,其實他基本上可以直接吃內含variant的map不會出錯 之前出錯是因為linking flag設錯了 =o= 只能說連這東西都吃得下去,感恩boost,讚嘆boost...... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.140.192 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1504676611.A.480.html
damody: 神奇 09/06 17:28
descent: 好威 09/06 17:33
troylee: C++11 make_pair 可以改用 initializer list {a,b} 09/10 21:55