{"id":337,"date":"2014-08-12T00:00:01","date_gmt":"2014-08-12T09:00:01","guid":{"rendered":"http:\/\/blog.box.kr\/?p=337"},"modified":"2014-08-12T00:00:01","modified_gmt":"2014-08-12T09:00:01","slug":"%ec%a0%95%ea%b7%9c%ec%8b%9d-%ec%82%ac%ec%9a%a9%eb%b2%95-%ed%8e%8c-boost-%ec%82%ac%ec%9a%a9","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=337","title":{"rendered":"\uc815\uaddc\uc2dd \uc0ac\uc6a9\ubc95 [\ud38c] boost \uc0ac\uc6a9"},"content":{"rendered":"<p>\uc9c8\ubb38 ::#\uc774 \ubd99\uc740 \uc804\ud654 \ubc88\ud638 \uc55e\uc5d0\ub294 %23\uc744 \ubd99\uc774\uace0 \uc2f6\uc74c..<\/p>\n<p>&nbsp;<\/p>\n<p>\ub2f5\ucf54\ub4dc ::<\/p>\n<p>std::string result, list = &#8220;#011-222-3333&#8221;;<\/p>\n<p>const char* regStr = &#8220;(#)?(01[016789])-?(d{3,4})-?(d{4})&#8221;;<br \/>\nconst char* subStr = &#8220;(?1%23)$2$3$4&#8221;;<\/p>\n<p>boost::regex_replace(result, list.begin(), list.end(), regStr, subStr, boost::match_default | boost::format_all);<\/p>\n<p>std::cout &lt;&lt; result &lt;&lt; std::endl;<br \/>\n[url]http:\/\/www.boost.org\/libs\/regex\/doc\/regex_replace.html[\/url]<br \/>\n[url]http:\/\/ourworld.compuserve.com\/homepages\/John_Maddock\/[\/url]<br \/>\n[url]http:\/\/research.microsoft.com\/projects\/greta\/gretauserguide.htm[\/url]<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc9c8\ubb38 ::#\uc774 \ubd99\uc740 \uc804\ud654 \ubc88\ud638 \uc55e\uc5d0\ub294 %23\uc744 \ubd99\uc774\uace0 \uc2f6\uc74c.. &nbsp; \ub2f5\ucf54\ub4dc :: std::string result, list = &#8220;#011-222-3333&#8221;; const char* regStr = &#8220;(#)?(01[016789])-?(d{3,4})-?(d{4})&#8221;; const char* subStr = &#8220;(?1%23)$2$3$4&#8221;; boost::regex_replace(result, list.begin(), list.end(), regStr, subStr, boost::match_default | boost::format_all); std::cout &lt;&lt; result &lt;&lt; std::endl; [url]http:\/\/www.boost.org\/libs\/regex\/doc\/regex_replace.html[\/url] [url]http:\/\/ourworld.compuserve.com\/homepages\/John_Maddock\/[\/url] [url]http:\/\/research.microsoft.com\/projects\/greta\/gretauserguide.htm[\/url] &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[9,7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-5r","jetpack-related-posts":[{"id":143,"url":"https:\/\/blog.box.kr\/?p=143","url_meta":{"origin":337,"position":0},"title":"Splitting a C++ std::string using tokens, e.g. \u201c;\u201d [duplicate]","date":"2014-06-29","format":false,"excerpt":"std::vector<std::string> split(const std::string& s,char seperator){ std::vector<std::string> output; std::string::size_type prev_pos =0, pos =0;while((pos = s.find(seperator, pos))!= std::string::npos){ std::string substring( s.substr(prev_pos, pos-prev_pos)); output.push_back(substring); prev_pos =++pos;} output.push_back(s.substr(prev_pos, pos-prev_pos));\/\/ Last wordreturn output;}","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":230,"url":"https:\/\/blog.box.kr\/?p=230","url_meta":{"origin":337,"position":1},"title":"std::string \ub2e4\ub8e8\uae30.. ( \ucc3e\uae30, \uacf5\ubc31\uc81c\uac70 \ub4f1\ub4f1)","date":"2014-07-23","format":false,"excerpt":"\ubb38\uc790\uc5f4 string #include \"StdAfx.h\" #include \"StringTest.h\" #include <algorithm> \/\/transform \uc0ac\uc6a9 #include <functional> \/\/bind1st using std::string; \/\/ \uc774\ub807\uac8c \uc9c0\uc815\ud574\uc900\ub2e4. StringTest::StringTest() { log(\"StringTest \uc0dd\uc131\uc790 \ud638\ucd9c\"); } StringTest::~StringTest(void) { log(\"StringTest \uc18c\uba78\uc790 \ud638\ucd9c\"); } void StringTest::test() { log(\"============ string class ==========\"); \/\/ \uc0dd\uc131\uc790 \u00a0 std::string s0; \/\/ \ube44\uc5b4\uc788\ub294 string std::string s1(\"012345\",3); \/\/ \uacb0\uacfc: 012\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":220,"url":"https:\/\/blog.box.kr\/?p=220","url_meta":{"origin":337,"position":2},"title":"VARIANT to std::string","date":"2014-07-23","format":false,"excerpt":"Here's one way, not necessarily the best. In general, std::string doesn't play very well with VARIANT. #include <comutil.h> #include <string> std::string from_variant(VARIANT& vt) { _bstr_t bs(vt); return std::string(static_cast<const char*>(bs)); } void to_variant(const std::string& str, VARIANT& vt) { _bstr_t bs(str.c_str()); reinterpret_cast<_variant_t&>(vt) = bs; } \u00a0 \ub610\ud55c.. VARIANT\uac00 \ube44\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778 \ud558\ub294\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":964,"url":"https:\/\/blog.box.kr\/?p=964","url_meta":{"origin":337,"position":3},"title":"how to calculate duration time","date":"2015-08-26","format":false,"excerpt":"http:\/\/stackoverflow.com\/questions\/6734375\/c-boost-get-current-time-in-milliseconds \u00a0 int main(int argc, char* argv[]) { boost::posix_time::ptime t1 = boost::posix_time::second_clock::local_time(); boost::this_thread::sleep(boost::posix_time::millisec(500)); boost::posix_time::ptime t2 = boost::posix_time::second_clock::local_time(); boost::posix_time::time_duration diff = t2 - t1; std::cout << diff.total_milliseconds() << std::endl; boost::posix_time::ptime mst1 = boost::posix_time::microsec_clock::local_time(); boost::this_thread::sleep(boost::posix_time::millisec(500)); boost::posix_time::ptime mst2 = boost::posix_time::microsec_clock::local_time(); boost::posix_time::time_duration msdiff = mst2 - mst1; std::cout << msdiff.total_milliseconds() << std::endl; return 0;\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":339,"url":"https:\/\/blog.box.kr\/?p=339","url_meta":{"origin":337,"position":4},"title":"[c++11] \uc798 \uc4f0\uba74 \ub9e4\uc6b0 \ud3b8\ub9ac\ud55c C++11\uc758 \ubb38\ubc95\ub4e4","date":"2014-08-12","format":false,"excerpt":"C\/C++\uc5b8\uc5b4\ub294 \uc800\uc218\uc900\uae4c\uc9c0 \uc815\ubc00\ud558\uac8c \ub2e4\ub8f0 \uc218 \uc788\ub294 \ubc18\uba74, \ud504\ub85c\uadf8\ub798\uba38\uac00 \uc77c\uc77c\ud788 \uad00\ub9ac\ud574\uc918\uc57c\ud558\ub294 \ubd80\ubd84\uc774 \ub9ce\ub2e4\ub294\uac8c C\/C++\uc5b8\uc5b4\uc5d0 \ub300\ud55c \uc77c\ubc18\uc801\uc778 \uacac\ud574\uc785\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc800\uc218\uc900\uae4c\uc9c0 \uc77c\uc77c\ud788 \uc2e0\uacbd\uc4f0\uc9c0 \uc54a\uc544\ub3c4 \ub418\ub294 \ucfe8\ud55c \uc5b8\uc5b4\ub97c \uac00\uc9c0\uace0 \ub192\uc740 \uc0dd\uc0b0\uc131\uc744 \ucd94\uad6c\ud558\ub294\uac8c \ucd94\uc138\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4. . . . \ub9cc, C++\uc758 \uace8\uc218\ube60\ub85c\uc11c C++11\uc744 \ud1b5\ud574 C++\ub85c\ub3c4 \ucda9\ubd84\ud788 \ucfe8\ud558\uace0 \uc0dd\uc0b0\uc131 \ub192\uc740 \ucf54-\ub4dc\ub97c \uc791\uc131\ud560\uc218 \uc788\ub2e4\uace0 \ubcc0\ud638\ub97c \ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4. Visual\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":867,"url":"https:\/\/blog.box.kr\/?p=867","url_meta":{"origin":337,"position":5},"title":"FIX8 lib. install on OSX","date":"2015-06-02","format":false,"excerpt":"1. open source download http:\/\/fix8.org\/downloads.html 2. un tar 3. brew install automake 4. brew install poco 5. configure --with-poco=\/usr\/local\/opt\/poco 6. make 7. but... error In file included from xml.cpp:38: In file included from ..\/include\/fix8\/f8includes.hpp:84: ..\/include\/fix8\/tickval.hpp:67:34: error: in-class initializer for static data member is not a constant expression static const ticks\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/337"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=337"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/337\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}