锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品无码午夜福利理论片,久久午夜福利无码1000合集,亚洲精品乱码久久久久久蜜桃不卡 http://www.shnenglu.com/zhaoyg/archive/2012/03/11/167677.htmlzhaoygzhaoygSun, 11 Mar 2012 14:31:00 GMThttp://www.shnenglu.com/zhaoyg/archive/2012/03/11/167677.htmlhttp://www.shnenglu.com/zhaoyg/comments/167677.htmlhttp://www.shnenglu.com/zhaoyg/archive/2012/03/11/167677.html#Feedback2http://www.shnenglu.com/zhaoyg/comments/commentRss/167677.htmlhttp://www.shnenglu.com/zhaoyg/services/trackbacks/167677.html闂叉潵鏃犱簨錛屾ā浠跨潃鐏嫄鐨勬墜鍔胯瘑鍒彃浠跺啓浜嗕釜榪蜂綘鐗堛?/span>
璇磋搗鏉ュぇ綰︿竴騫村墠鍦ㄧ綉涓婅榪囧埆浜哄啓榪欑帺鎰忥紝褰撴椂娌℃庝箞鐪嬪叾鍐呭錛屽彧鏄劅瑙夋湁闅懼害鐨勩傜劧鑰岀洿鍒拌繎鏈熻嚜宸卞垎鏋愯繖涓滆タ鍚庡彂鐜板叾瀹炴病浠涔堝唴瀹癸紝浜庢槸鑷繁灝辨悶浜嗕釜銆?/span>

鏁堟灉鎴浘錛?/span>


鐩墠鍙槸瀹炵幇浜嗗熀紜閮ㄥ垎錛屾湁絀轟簡鍦ㄥ線涓婇檮鍔犲唴瀹廣?/span>
鑷充簬浠g爜錛屽叾瀹炶繖涓滆タ鍩烘湰娌′粈涔堝惈閲忥紝鎵浠ヤ篃灝辨病蹇呰闄勪簡銆?/span>


zhaoyg 2012-03-11 22:31 鍙戣〃璇勮
]]>
銆愯漿銆慍++11涓煎緱鍏蟲敞鐨勫嚑澶у彉鍖?/title><link>http://www.shnenglu.com/zhaoyg/archive/2011/08/19/153882.html</link><dc:creator>zhaoyg</dc:creator><author>zhaoyg</author><pubDate>Fri, 19 Aug 2011 13:06:00 GMT</pubDate><guid>http://www.shnenglu.com/zhaoyg/archive/2011/08/19/153882.html</guid><wfw:comment>http://www.shnenglu.com/zhaoyg/comments/153882.html</wfw:comment><comments>http://www.shnenglu.com/zhaoyg/archive/2011/08/19/153882.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhaoyg/comments/commentRss/153882.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhaoyg/services/trackbacks/153882.html</trackback:ping><description><![CDATA[<div><div><div> <p>璧栧媷嫻╋紙http://laiyonghao.com錛?br /> 澹版槑錛氭湰鏂囨簮鑷?Danny Kalev 鍦?2011 騫?6 鏈?21 鏃ュ彂琛ㄧ殑銆奣he Biggest Changes in C++11(and Why You Should Care)銆嬩竴鏂囷紝鍑犱箮鎵鏈夊唴瀹歸兘鎼簡榪囨潵錛屼絾涓嶆槸鍏ㄦ枃鐓ц瘧錛屾湁鍥版儜涔嬪錛岃鍙傝鍘熸枃錛?a >http://www.softwarequalityconnection.com/2011/06/the-biggest-changes-in-c11-and-why-you-should-care/</a> 錛夈?br /> 娉細(xì)浣滆?Danny Kalev 鏇炬槸 C++ 鏍囧噯濮斿憳浼?xì)鎴愬憳銆?/p> <h2>Lambda 琛ㄨ揪寮?/h2> <p>Lambda 琛ㄨ揪寮忕殑褰㈠紡鏄繖鏍風(fēng)殑錛?br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>[capture](parameters)->return-type {body}  </span></li></ol></div> <br /> 鏉ョ湅涓鏁版煇涓瓧絎﹀簭鍒椾腑鏈夊嚑涓ぇ鍐欏瓧姣嶇殑渚嬪瓙錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>int main()  </span></li><li>{  </li><li>   <span>char s[]="Hello World!";  </span></li><li>   <span>int Uppercase = 0; //modified by the lambda  </span></li><li>   for_each(s, s+<span>sizeof(s), [&Uppercase] (char c) {  </span></li><li>    <span>if (isupper(c))  </span></li><li>     Uppercase++;  </li><li>    });  </li><li> cout<< Uppercase<<<span>" uppercase letters in: "<< s<<endl;  </span></li><li>}  </li></ol></div> <br /> 鍏朵腑 [&Uppercase] 涓殑 & 鐨勬剰涔夋槸 lambda 鍑芥暟浣撹鑾峰彇涓涓?Uppercase 寮曠敤錛屼互渚胯兘澶熸敼鍙樺畠鐨勫鹼紝濡傛灉娌℃湁 &錛岄偅灝?Uppercase 灝嗕互浼犲肩殑褰㈠紡浼犻掕繃鍘匯?<h2>鑷姩綾誨瀷鎺ㄥ鍜?decltype</h2> <p>鍦?C++03 涓紝澹版槑瀵硅薄鐨勫悓鏃跺繀欏繪寚鏄庡叾綾誨瀷錛屽叾瀹炲ぇ澶氭暟鎯呭喌涓嬶紝澹版槑瀵硅薄鐨勫悓鏃朵篃浼?xì)鍖呮嫭涓涓垵濮嬪鹼紝C++11 鍦ㄨ繖縐嶆儏鍐典笅灝辮兘澶熻浣犲0鏄庡璞℃椂涓嶅啀鎸囧畾綾誨瀷浜嗭細(xì)<br /> </p><div bg_c-sharp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>auto x=0; //0 鏄?nbsp;int 綾誨瀷錛屾墍浠?nbsp;x 涔熸槸 int 綾誨瀷  </span></li><li>auto c=<span>'a'; //char  </span></li><li>auto d=0.5; <span>//double  </span></li><li>auto national_debt=14400000000000LL;<span>//long long  </span></li></ol></div> <br /> 榪欎釜鐗規(guī)у湪瀵硅薄鐨勭被鍨嬪緢澶у緢闀跨殑鏃跺欏緢鏈夌敤錛屽錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>void func(const vector<int> &vi)  </span></li><li>{  </li><li>  vector<<span>int>::const_iterator ci=vi.begin();  </span></li><li>}  </li></ol></div> <br /> 閭d釜榪唬鍣ㄥ彲浠ュ0鏄庝負(fù)錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>auto ci=vi.begin();  </span></li></ol></div> <br /> C++11 涔熸彁渚涗簡浠庡璞℃垨琛ㄨ揪寮忎腑“淇樿幏”綾誨瀷鐨勬満鍒訛紝鏂扮殑鎿嶄綔絎?decltype 鍙互浠庝竴涓〃杈懼紡涓?#8220;淇樿幏”鍏剁粨鏋滅殑綾誨瀷騫?#8220;榪斿洖”錛?br /> <div bg_c-sharp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>const vector<int> vi;  </span></li><li>typedef decltype (vi.begin()) CIT;  </li><li>CIT another_const_iterator;  </li></ol></div> <h2>緇熶竴鐨勫垵濮嬪寲璇硶</h2> <p>C++ 鏈灝戞湁 4 縐嶄笉鍚岀殑鍒濆鍖栧艦寮忥紝濡傛嫭鍙峰唴鍒濆鍖栵紝瑙侊細(xì)<br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>std::string s("hello");  </span></li><li><span>int m=int(); //default initialization  </span></li></ol></div> <br /> 榪樻湁絳夊彿褰㈠紡鐨勶細(xì)<br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>std::string s="hello";  </span></li><li><span>int x=5;  </span></li></ol></div> <br /> 瀵逛簬 POD 闆嗗悎錛屽張鍙互鐢ㄥぇ鎷彿錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>int arr[4]={0,1,2,3};  </span></li><li><span>struct tm today={0};  </span></li></ol></div> <br /> 鏈鍚庤繕鏈夋瀯閫犲嚱鏁扮殑鎴愬憳鍒濆鍖栵細(xì)<br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>struct S {  </span></li><li> <span>int x;  </span></li><li> S(): x(0) {} };  </li></ol></div> <br /> 榪欎箞澶氬垵濮嬪寲褰㈠紡錛屼笉浠呰彍楦熶細(xì)鎼炲緱寰堝ご澶э紝楂樻墜涔熷悆涓嶆秷銆傛洿鎯ㄧ殑鏄?C++03 涓眳鐒朵笉鑳藉垵濮嬪寲 POD 鏁扮粍鐨勭被鎴愬憳錛屼篃涓嶈兘鍦ㄤ嬌鐢?new[] 鐨勬椂鍊欏垵濮?POD 鏁扮粍錛屾搷铔嬪晩錛丆++11 灝辯敤澶ф嫭鍙蜂竴緇熷ぉ涓嬩簡錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>class C  </span></li><li>{  </li><li><span>int a;  </span></li><li><span>int b;  </span></li><li><span>public:  </span></li><li> C(<span>int i, int j);  </span></li><li>};  </li><li>C c {0,0}; <span>//C++11 only. 鐩稿綋浜?nbsp;C c(0,0);  </span></li><li><span>int* a = new int[3] { 1, 2, 0 }; /C++11 only  </span></li><li><span>class X {  </span></li><li>  <span>int a[4];  </span></li><li><span>public:  </span></li><li>  X() : a{1,2,3,4} {} <span>//C++11, 鍒濆鍖栨暟緇勬垚鍛?nbsp; </span></li><li>};  </li></ol></div> <br /> 榪樻湁涓澶уソ浜嬪氨鏄浜庡鍣ㄦ潵璇達(dá)紝緇堜簬鍙互鎽嗚劚 push_back() 璋冪敤浜嗭紝C++11涓彲浠ョ洿瑙傚湴鍒濆鍖栧鍣ㄤ簡錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>// C++11 container initializer  </span></li><li>vector vs<string>={ <span>"first", "second", "third"};  </span></li><li>map singers =  </li><li>  { {<span>"Lady Gaga", "+1 (212) 555-7890"},  </span></li><li>    {<span>"Beyonce Knowles", "+1 (212) 555-0987"}};  </span></li></ol></div> <br /> 鑰岀被涓殑鏁版嵁鎴愬憳鍒濆鍖栦篃寰楀埌浜嗘敮鎸侊細(xì)<br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>class C  </span></li><li>{  </li><li> <span>int a=7; //C++11 only  </span></li><li><span>public:  </span></li><li> C();  </li><li>};  </li></ol></div> <h2>deleted 鍑芥暟鍜?defaulted 鍑芥暟</h2> <p>鍍忎互涓嬪艦寮忕殑鍑芥暟錛?br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>struct A  </span></li><li>{  </li><li> A()=<span>default; //C++11  </span></li><li> <span>virtual ~A()=default; //C++11  </span></li><li>};  </li></ol></div> <br /> 鍙仛 defaulted 鍑芥暟錛?default; 鎸囩ず緙栬瘧鍣ㄧ敓鎴愯鍑芥暟鐨勯粯璁ゅ疄鐜般傝繖鏈変袱涓ソ澶勶細(xì)涓鏄紼嬪簭鍛樿交鏉句簡錛屽皯鏁查敭鐩橈紝浜屾槸鏈夋洿濂界殑鎬ц兘銆?br /> 涓?defaulted 鍑芥暟鐩稿鐨勫氨鏄?deleted 鍑芥暟錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>int func()=delete;  </span></li></ol></div> <br /> 榪欒揣鏈変竴澶х敤閫斿氨鏄疄鐜?noncopyabe 闃叉瀵硅薄鎷瘋礉錛岃鎯崇姝㈡嫹璐濓紝鐢?=deleted 澹版槑涓涓嬩袱涓叧閿殑鎴愬憳鍑芥暟灝卞彲浠ヤ簡錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>struct NoCopy  </span></li><li>{  </li><li>    NoCopy & operator =( <span>const NoCopy & ) = delete;  </span></li><li>    NoCopy ( <span>const NoCopy & ) = delete;  </span></li><li>};  </li><li>NoCopy a;  </li><li>NoCopy b(a); <span>//緙栬瘧閿欒錛屾嫹璐濇瀯閫犲嚱鏁版槸 deleted 鍑芥暟  </span></li></ol></div> <h2>nullptr</h2> <p>nullptr 鏄竴涓柊鐨?C++ 鍏抽敭瀛楋紝瀹冩槸絀烘寚閽堝父閲忥紝瀹冩槸鐢ㄦ潵鏇夸唬楂橀闄╃殑 NULL 瀹忓拰 0 瀛楅潰閲忕殑銆俷ullptr 鏄己綾誨瀷鐨勶細(xì)<br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>void f(int); //#1  </span></li><li><span>void f(char *);//#2  </span></li><li><span>//C++03  </span></li><li>f(0); <span>//璋冪敤鐨勬槸鍝釜 f?  </span></li><li><span>//C++11  </span></li><li>f(nullptr) <span>//姣棤鐤戦棶錛岃皟鐢ㄧ殑鏄?nbsp;#2  </span></li></ol></div> <br /> 鎵鏈夎窡鎸囬拡鏈夊叧鐨勫湴鏂歸兘鍙互鐢?nullptr錛屽寘鎷嚱鏁版寚閽堝拰鎴愬憳鎸囬拡錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>const char *pc=str.c_str(); //data pointers  </span></li><li><span>if (pc!=nullptr)  </span></li><li>  cout<<pc<<endl;  </li><li><span>int (A::*pmf)()=nullptr; //鎸囧悜鎴愬憳鍑芥暟鐨勬寚閽?nbsp; </span></li><li><span>void (*pmf)()=nullptr; //鎸囧悜鍑芥暟鐨勬寚閽?nbsp; </span></li></ol></div> <h2>濮旀墭鏋勯犲嚱鏁?/h2> <p>C++11 涓瀯閫犲嚱鏁板彲浠ヨ皟鐢ㄥ悓涓涓被鐨勫彟涓涓瀯閫犲嚱鏁幫細(xì)<br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>class M //C++11 delegating constructors  </span></li><li>{  </li><li> <span>int x, y;  </span></li><li> <span>char *p;  </span></li><li><span>public:  </span></li><li> M(<span>int v) : x(v), y(0),  p(new char [MAX])  {} //#1 target  </span></li><li> M(): M(0) {cout<<<span>"delegating ctor"<<end;} //#2 delegating  </span></li></ol></div> <br /> #2 灝辨槸鎵璋撶殑濮旀墭鏋勯犲嚱鏁幫紝璋冪敤浜嗙湡姝g殑鏋勯犲嚱鏁?#1銆?<h2>鍙沖煎紩鐢?/h2> <p>鍦?C++03 涓殑寮曠敤綾誨瀷鏄彧緇戝畾宸﹀肩殑錛孋++11 寮曠敤涓涓柊鐨勫紩鐢ㄧ被鍨嬪彨鍙沖煎紩鐢ㄧ被鍨嬶紝瀹冩槸緇戝畾鍒板彸鍊肩殑錛屽涓存椂瀵硅薄鎴栧瓧闈㈤噺銆?br /> 澧炲姞鍙沖煎紩鐢ㄧ殑涓昏鍘熷洜鏄負(fù)浜嗗疄鐜?move 璇箟銆備笌浼犵粺鐨勬嫹璐濅笉鍚岋紝move 鐨勬剰鎬濇槸鐩爣瀵硅薄“紿冨彇”鍘熷璞$殑璧勬簮錛屽茍灝嗘簮緗簬“絀?#8221;鐘舵併傚綋鎷瘋礉涓涓璞℃椂錛屽叾瀹炰唬浠鋒槀璐典笖鏃犲繀瑕侊紝move 鎿嶄綔灝卞彲浠ユ浛浠e畠銆傚鍦? string 浜ゆ崲鐨勬椂鍊欙紝浣跨敤 move 鎰忎箟灝辨湁宸ㄥぇ鐨勬ц兘鎻愬崌錛屽鍘熸柟妗堟槸榪欐牱鐨勶細(xì)<br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>void naiveswap(string &a, string & b)  </span></li><li>{  </li><li> string temp = a;  </li><li> a=b;  </li><li> b=temp;  </li><li>}  </li></ol></div> <br /> 榪欑鏂規(guī)寰堝偦寰堝ぉ鐪燂紝寰堟參錛屽洜涓洪渶瑕佺敵璇峰唴瀛橈紝鐒跺悗鎷瘋礉瀛楃錛岃?move 灝卞彧闇瑕佷氦鎹袱涓暟鎹垚鍛橈紝鏃犻』鐢寵銆侀噴鏀懼唴瀛樺拰鎷瘋礉瀛楃鏁扮粍錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>void moveswapstr(string& empty, string & filled)  </span></li><li>{  </li><li><span>//pseudo code, but you get the idea  </span></li><li> <span>size_t sz=empty.size();  </span></li><li> <span>const char *p= empty.data();  </span></li><li><span>//move filled's resources to empty  </span></li><li> empty.setsize(filled.size());  </li><li> empty.setdata(filled.data());  </li><li><span>//filled becomes empty  </span></li><li> filled.setsize(sz);  </li><li> filled.setdata(p);  </li><li>}  </li></ol></div> <br /> 瑕佸疄鐜版敮鎸?move 鐨勭被錛岄渶瑕佸0鏄?move 鏋勯犲嚱鏁板拰 move 璧嬪兼搷浣滅錛屽涓嬶細(xì)<br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>class Movable  </span></li><li>{  </li><li>Movable (Movable&&); <span>//move constructor  </span></li><li>Movable&& operator=(Movable&&); <span>//move assignment operator  </span></li><li>};  </li></ol></div> <br /> C++11 鐨勬爣鍑嗗簱騫挎硾浣跨敤 move 璇箟錛屽緢澶氱畻娉曞拰瀹瑰櫒閮藉凡緇忎嬌鐢?move 璇箟浼樺寲榪囦簡銆?<h2>C++11 鐨勬爣鍑嗗簱</h2> <p>闄?TR1 鍖呭惈鐨勬柊瀹瑰櫒錛坲nordered_set, unordered_map, unordered_multiset, 鍜寀nordered_multimap錛夛紝榪樻湁涓浜涙柊鐨勫簱錛屽姝e垯琛ㄨ揪寮忥紝tuple錛屽嚱鏁板璞″皝瑁呭櫒絳夈備笅闈粙緇嶄竴浜?C++11 鐨勬爣鍑嗗簱鏂扮壒鎬э細(xì)</p> <h3>綰跨▼搴?/h3> <p>浠庣▼搴忓憳鐨勮搴︽潵鐪嬶紝C++11 鏈閲嶈鐨勭壒鎬у氨鏄茍鍙戜簡銆侰++11 鎻愪緵浜?thread 綾伙紝涔熸彁渚涗簡 promise 鍜?future 鐢ㄤ互騫跺彂鐜涓殑鍚屾錛岀敤 async() 鍑芥暟妯℃澘鎵ц騫跺彂浠誨姟錛屽拰 thread_local 瀛樺偍澹版槑涓虹壒瀹氱嚎紼嬬嫭鍗犵殑鏁版嵁錛岃繖閲岋紙http://www.devx.com/SpecialReports/Article/38883錛夋湁涓涓畝鍗?鐨?C++11 綰跨▼搴撴暀紼嬶紙鑻辨枃錛夈?/p> <h3>鏂扮殑鏅鴻兘鎸囬拡綾?/h3> <p>C++98 瀹氫箟鐨勫敮涓鐨勬櫤鑳芥寚閽堢被 auto_ptr 宸茬粡琚純鐢紝C++11 寮曞叆浜嗘柊鐨勬櫤鑳介拡瀵圭被 shared_ptr 鍜?unique_ptr銆傚畠浠兘鏄爣鍑嗗簱鐨勫叾瀹冪粍浠跺吋瀹癸紝鍙互瀹夊叏鍦版妸鏅鴻兘鎸囬拡瀛樺叆鏍囧噯瀹瑰櫒錛屼篃鍙互瀹夊叏鍦扮敤鏍囧噯綆楁硶“鍊掕吘”瀹冧滑銆?/p> <h3>鏂扮殑綆楁硶</h3> <p>涓昏鏄?all_of()銆乤ny_of() 鍜?none_of()錛屼笅闈㈡槸渚嬪瓙錛?br /> </p><div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>#include <algorithm>  </span></li><li><span>//C++11 code  </span></li><li><span>//are all of the elements positive?  </span></li><li>all_of(first, first+n, ispositive()); <span>//false  </span></li><li><span>//is there at least one positive element?  </span></li><li>any_of(first, first+n, ispositive());<span>//true  </span></li><li><span>// are none of the elements positive?  </span></li><li>none_of(first, first+n, ispositive()); <span>//false  </span></li></ol></div> <br /> 榪樻湁涓涓柊鐨?copy_n錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>#include <algorithm>  </span></li><li><span>int source[5]={0,12,34,50,80};  </span></li><li><span>int target[5];  </span></li><li><span>//浠?nbsp;source 鎷瘋礉 5 涓厓绱犲埌 target  </span></li><li>copy_n(source,5,target);  </li></ol></div> <br /> iota() 綆楁硶鍙互鐢ㄦ潵鍒涘緩閫掑搴忓垪錛屽畠鍏堟妸鍒濆艱祴鍊肩粰 *first錛岀劧鍚庣敤鍓嶇疆 ++ 鎿嶄綔絎﹀闀垮垵鍊煎茍璧嬪煎埌緇欎笅涓涓凱浠e櫒鎸囧悜鐨勫厓绱狅紝濡備笅錛?br /> <div bg_cpp=""><div><div><a title="view plain">view plain</a></div></div><ol start="1"><li><span>#include <numeric>  </span></li><li><span>int a[5]={0};  </span></li><li><span>char c[3]={0};  </span></li><li>iota(a, a+5, 10); <span>//changes a to {10,11,12,13,14}  </span></li><li>iota(c, c+3, <span>'a'); //{'a','b','c'}  </span></li></ol></div> <br /> 鏄殑錛孋++11 浠嶇劧緙哄皯涓浜涘緢鏈夌敤鐨勫簱濡?XML API錛宻ocket錛孏UI銆佸弽灝?#8212;—浠ュ強(qiáng)鑷姩鍨冨溇鏀墮泦銆傜劧鑰岀幇鏈夌壒鎬у凡緇忚 C++ 鏇村畨鍏ㄣ侀珮鏁堬紙鏄殑錛屾晥鐜囨洿楂樹簡錛屽彲浠ュ弬瑙?Google 鐨? 鍩哄噯嫻嬭瘯緇撴灉http://www.itproportal.com/2011/06/07/googles-rates-c-most- complex-highest-performing-language/錛変互鍙?qiáng)鏇村姞鏄撲簬瀛︿範(fàn)鍜屼娇鐢ㄣ?br /> 濡傛灉瑙夊緱 C++ 鍙樺寲澶ぇ浜嗭紝涓嶅繀鎯婃亹錛岃姳鐐規(guī)椂闂存潵瀛︿範(fàn)灝卞ソ浜嗐傚彲鑳藉湪浣犺瀺浼?xì)璇忛氭柊鐗規(guī)т互鍚庯紝浣犱細(xì)鍚屾剰 Stroustrup 鐨勮鐐癸細(xì)C++11 鏄竴闂ㄦ柊鐨勮璦——涓涓洿濂界殑 C++銆?p><br /></p> </div></div></div><img src ="http://www.shnenglu.com/zhaoyg/aggbug/153882.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhaoyg/" target="_blank">zhaoyg</a> 2011-08-19 21:06 <a href="http://www.shnenglu.com/zhaoyg/archive/2011/08/19/153882.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>C++涓皟鐢╬ython鍑芥暟http://www.shnenglu.com/zhaoyg/archive/2011/06/02/147938.htmlzhaoygzhaoygThu, 02 Jun 2011 03:22:00 GMThttp://www.shnenglu.com/zhaoyg/archive/2011/06/02/147938.htmlhttp://www.shnenglu.com/zhaoyg/comments/147938.htmlhttp://www.shnenglu.com/zhaoyg/archive/2011/06/02/147938.html#Feedback0http://www.shnenglu.com/zhaoyg/comments/commentRss/147938.htmlhttp://www.shnenglu.com/zhaoyg/services/trackbacks/147938.html浠ヤ笅鏄氳繃boost::python瀹炵幇鐨勶紝python鐗堟湰2.7
int main()
{
    Py_Initialize();

    PyObject 
* pModule = NULL;//澹版槑鍙橀噺
    PyObject * pFunc = NULL;// 澹版槑鍙橀噺
    pModule =PyImport_ImportModule("helloworld");//榪欓噷鏄璋冪敤鐨勬枃浠跺悕

    
if (!pModule)
        cout 
<< "err";

    handle
<>* _module; // Module handle.

    _module 
= new handle<>(pModule);

    
// 閫氳繃call_method
    int i = call_method<int>(_module->get() , "Hello" , 4);  

    
// 閫氳繃attr
    main_module.attr("Hello")(2);

    
// main_module.attr("Hello")(2); 灞曞紑濡備笅
    object main_module(*_module);
    
object FunObj = main_module.attr("Hello");  // 鑾峰彇hello鍑芥暟瀵硅薄

    
// 閫氳繃object鐖剁被鐨刼perator()鎿嶄綔絎?/span>
    FunObj(1); 

    
// 閫氳繃call
    i = call<int>(FunObj.ptr(), 3);


    { 
// 閬嶅巻涓閬峱ython鍐呯疆綾誨瀷list瀵硅薄涓殑鍊?/span>
        list  List = call_method<list>(_module->get() , "getList");

        
int n = len(List);

        
for (int i = 0 ; i < n ; i++)
        {
            int val = extract<int> (List[i]);  // 鑾峰彇List[i]浜х敓鐨刼bject瀵硅薄涓殑鍊?/span>錛岄氳繃extract妯℃澘鏉ヨ漿鎹?br />            cout << val << " ";
        }
    }


    
return 0;
}





zhaoyg 2011-06-02 11:22 鍙戣〃璇勮
]]>
閫氳繃Boost::Python瀹炵幇C++瀵硅薄瀵煎叆python鐜http://www.shnenglu.com/zhaoyg/archive/2011/06/01/147885.htmlzhaoygzhaoygWed, 01 Jun 2011 09:34:00 GMThttp://www.shnenglu.com/zhaoyg/archive/2011/06/01/147885.htmlhttp://www.shnenglu.com/zhaoyg/comments/147885.htmlhttp://www.shnenglu.com/zhaoyg/archive/2011/06/01/147885.html#Feedback1http://www.shnenglu.com/zhaoyg/comments/commentRss/147885.htmlhttp://www.shnenglu.com/zhaoyg/services/trackbacks/147885.html
浠ヤ笅鍙槸瀵硅嚜宸辨懜绱㈢粨鏋滅殑鎬葷粨錛屽叾涓毦鍏嶅瓨鍦ㄩ敊璇紝濡傛湁浠諱綍閿欒錛屾湜涓嶆儨鎸囨

綾誨畾涔夛細(xì)
class Demo
{
private:
    
int m_val;
    
string m_nam;

public:
    
void setVal(int val)
    {
        m_val 
= val;
    }

    
int getVal()
    {
        
return m_val;
    }

    
void setName(const char *name)
    {
        m_nam 
= name;
    }

    
const char* getName()
    {
        
return m_nam.c_str();
    }
    
void show()
    {
        std::cout 
<<"hello world" <<std::endl;
    }

};

鏂規(guī)硶涓錛?/strong>
void fun1()
{
    Py_Initialize();

    PyObject 
*pModule = PyImport_ImportModule("helloworld");

    handle
<>_module(pModule);

    
object main_module(_module);

    
// 瀵煎嚭C++綾誨埌python涓?/span>
    main_module.attr("Demo")  = class_ <Demo>("Demo") // 閫氳繃boost::python涓殑class_灝咰++綾誨寘瑁呮垚object綾誨瀷錛屽洜涓簆ython涓墍鏈夌被鍨嬮兘鏄痮bject
        .def(
"setVal"&Demo::setVal)
        .def(
"setName"&Demo::setName)
        ;


    
// 閫氳繃boost::python鎻愪緵鐨勬ā鏉垮嚱鏁皃tr錛屾潵灝咲emo瀵硅薄浼犲叆python
    Demo a;
    main_module.attr(
"test"= object(ptr(&a));

    std::cout 
<<"涔嬪墠:"<< a.getName() << " " << a.getVal()<<endl;

    call_method
<void>(pModule , "fun2");

    std::cout 
<<"涔嬪悗:"<< a.getName() << " " << a.getVal()<<endl;

    // 閫氳繃python鍑芥暟榪斿洖C++瀵硅薄
    Demo tmp = call_method<Demo>(pModule , "ReturnCppClass");
    std::cout << tmp.getName() << " " << tmp.getVal() <<endl;
}

helloworld.py鑴氭湰鍐呭錛?br />
def fun2():
    tmp 
= test;
    tmp.setVal(
12345);
    tmp.setName(
"2011-5-19");

def ReturnCppClass():
    tmp = Demo();
    tmp.setName('123456789')
    tmp.setVal(99);
    return tmp;

1.璇彞main_module.attr("test"= object(ptr(&a)); 涓殑"test"鏄痑瀵硅薄鍦ㄨ剼鏈腑鐨勫埆鍚嶏紝浜庢槸鑴氭湰涓彲浠ョ洿鎺ラ氳繃test鍚嶅瓧鎿嶄綔C++瀵硅薄銆?br />2.Demo tmp = call_method<Demo>(pModule , "ReturnCppClass");鏉ュ疄鐜板湪python涓垱寤篊++瀵硅薄錛屽茍涓旇繑鍥炲埌C++涓?br />
鏂規(guī)硶浜岋細(xì)
閫氳繃鏅鴻兘鎸囬拡瀹炵幇C++瀵硅薄鐨勫鍏?strong>
typedef boost::shared_ptr < Demo > Demo_ptr;
void fun2()
{
    Py_Initialize();

    Demo_ptr spD1(
new Demo);

    spD1
->setName("NULL");
    spD1
->setVal(0);

    
try
    {
        PyObject 
*pModule = PyImport_ImportModule("helloworld");

        register_ptr_to_python 
<Demo_ptr>();  // 娉ㄥ唽鍙兘鎸囬拡

        handle
<>* _module;

        _module 
= new handle<>(pModule);
        
object main_module(*_module);

        
object dictionary = main_module.attr("__dict__");
        dictionary[
"Demo"= class_ <Demo>("Demo")
            .def(
"setVal"&Demo::setVal)
            .def(
"setName"&Demo::setName)
            ;

        main_module.attr(
"DemoObj"= spD1; // 娣誨姞鏅鴻兘鎸囬拡鍒拌剼鏈紝騫墮噸鍛藉悕

        call_method
<void>(pModule , "SetObj"); // 鍦ㄨ剼鏈腑閫氳繃鎿嶇旱鏅鴻兘鎸囬拡鏉ユ帶鍒跺璞?/span>

        std::cout 
<< a.getName() << " " << a.getVal()<<endl;
    }
    
catch (error_already_set) 
    {
        PyErr_Print();
    }

    std::cout 
<< "spD1->getName(): " << spD1->getName() <<std::endl;
    std::cout 
<< "spD1->getVal(): " << spD1->getVal() <<std::endl;
}

鑴氭湰鍐呭錛?br />
def SetObj():
    DemoObj.setVal(
100);
    DemoObj.setName(
'hello');

1.register_ptr_to_python <Demo_ptr>(); 娌℃湁榪欏彞榪愯鏃朵細(xì)寰楀埌閿欒銆傚叧浜巖egister_ptr_to_python錛宐oost涓殑瑙i噴鏄細(xì)
“a function template which registers a conversion for smart pointers to Python”

2.
dictionary["Demo"= class_ <Demo>("Demo")
            .def(
"setVal"&Demo::setVal)
            .def(
"setName"&Demo::setName)
            ;
涓庢柟娉曚竴涓殑錛?br />
main_module.attr("Demo")  = class_ <Demo>("Demo")
        .def(
"setVal"&Demo::setVal)
        .def(
"setName"&Demo::setName)
        ;

鏁堟灉涓鏍楓?br />
-----------------------------------------------------------------------------------
浠ヤ笂灝辨槸鍏充簬濡備綍灝咰++瀵硅薄浼犲叆python鐨勪竴鐐逛範(fàn)寰楋紝濡傛湁浠諱綍閿欒錛屾湜涓嶆儨鎸囨
-----------------------------------------------------------------------------------

P.S.: cppblog鎻愪緵鐨勭紪杈戝櫒涓嶅ソ鐢?img src ="http://www.shnenglu.com/zhaoyg/aggbug/147885.html" width = "1" height = "1" />

zhaoyg 2011-06-01 17:34 鍙戣〃璇勮
]]>
鍏充簬C++宓屽叆python鑴氭湰鍚庣殑紼嬪簭鍙戝竷闂http://www.shnenglu.com/zhaoyg/archive/2011/04/25/142659.htmlzhaoygzhaoygMon, 25 Apr 2011 01:57:00 GMThttp://www.shnenglu.com/zhaoyg/archive/2011/04/25/142659.htmlhttp://www.shnenglu.com/zhaoyg/comments/142659.htmlhttp://www.shnenglu.com/zhaoyg/archive/2011/04/25/142659.html#Feedback0http://www.shnenglu.com/zhaoyg/comments/commentRss/142659.htmlhttp://www.shnenglu.com/zhaoyg/services/trackbacks/142659.html
浜庢槸閫氳繃鍏抽敭瀛?#8220;C++宓屽叆python 鍙戝竷”錛屾壘鍒頒簡涓涓敤py2exe鏉ヨВ鍐抽棶棰橈紝浣嗘垜璇曚簡鍗婂ぉ閮芥病鎴愬姛錛堜篃璁告槸鎴戣嚜宸辨病寮勫鐨勫師鍥狅紝鍥犱負(fù)浜哄閮芥垚鍔熶簡錛夈?br />鍐嶅悗鏉ユ垜鎶婂叧閿瓧鏀逛負(fù)浜?#8220;python C++ distribute embed”錛堝嵆鑻辨枃鍏抽敭瀛楋級錛岃繖涓嬫嫧浜戣澶╀簡錛屽洜涓哄湪Google鐨勭涓欏靛氨鏈変竴涓鍥藉笘瀛愬叾鏍囬姝e拰鎴戞剰錛堟灉鐒惰嫳璇粰鍔涳級銆?br />
鐪嬩簡閭d釜璐村瓙鍙戠幇錛屼箣鎵浠ヤ笉鑳藉湪娌℃湁瀹夎python鐨勬満瀛愪笂榪愯鏄洜涓猴細(xì)


In addition to pythonxy.dll, you also need the entire Python library, i.e. the contents of the lib folder, plus the extension modules, i.e. the contents of the DLLs folder. Without the standard library, Python won't even start, since it tries to find os.py (in 3.x; string.py in 2.x). On startup, it imports a number of modules, in particular site.py.


鍘熸枃錛?a >http://stackoverflow.com/questions/1387906/c-with-python-embedding-crash-if-python-not-installed


zhaoyg 2011-04-25 09:57 鍙戣〃璇勮
]]>
U鐩樼殑璧鋒鍥炵敓璁?/title><link>http://www.shnenglu.com/zhaoyg/archive/2011/02/27/140739.html</link><dc:creator>zhaoyg</dc:creator><author>zhaoyg</author><pubDate>Sun, 27 Feb 2011 07:35:00 GMT</pubDate><guid>http://www.shnenglu.com/zhaoyg/archive/2011/02/27/140739.html</guid><wfw:comment>http://www.shnenglu.com/zhaoyg/comments/140739.html</wfw:comment><comments>http://www.shnenglu.com/zhaoyg/archive/2011/02/27/140739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/zhaoyg/comments/commentRss/140739.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zhaoyg/services/trackbacks/140739.html</trackback:ping><description><![CDATA[<p>鍓嶅ぉ寰U鐩橀噷浼犱簡涓浜涗笢瑗匡紝緇撴灉鍦ㄦ病鏈変紶瀹岀殑鎯呭喌涓嬫嫈浜哢鐩橈紝絳夊啀鐢ㄧ殑鏃跺欏彂鐜版彃涓妘鐩樺悗铏界劧鍙互璇嗗埆錛屼絾鏃犳硶璇誨彇閲岄潰鐨勫唴瀹癸紝騫朵笖涔熸棤娉曟牸寮忓寲銆?br><br>璇曚簡涓嬬綉涓婄殑涓浜沀鐩樹慨澶嶅伐鍏鳳紝浣嗗潎鍛婂け璐ャ傚績鎯寵繖涓嬫姤搴熶簡錛屽張寰椾拱浜嗐?br><br>涓嶈繃浠婂ぉ鎶辯潃渚ュ垢蹇冪悊鍙堝湪緗戜笂鎼滀簡鎼滐紝鍙戠幇鏈変竴縐嶇О涓?#8220;閲忎駭宸ュ叿”鐨勬垜榪樻病璇曪紝鍚庢潵緇撴灉璇佹槑閲忎駭宸ュ叿鏋滅劧濂忔晥錛屾垜鐨勭洏鍙堟椿浜?img border=0 src="http://www.shnenglu.com/Emoticons/QQ/06.gif" width=20 height=20>銆?br><br><br>浠ヤ笅涓?鏁欑▼ & 宸ュ叿<br><br>鏁欑▼閾炬帴錛?a >http://bbs.deepin.org/viewthread.php?tid=1772579</a></p> 閲戝+欏縂3 4G 宸ュ叿錛?a href="http://www.shnenglu.com/Files/zhaoyg/KinstonG3.rar">/Files/zhaoyg/KinstonG3.rar</a> <img src ="http://www.shnenglu.com/zhaoyg/aggbug/140739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zhaoyg/" target="_blank">zhaoyg</a> 2011-02-27 15:35 <a href="http://www.shnenglu.com/zhaoyg/archive/2011/02/27/140739.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.0731dy.cn" target="_blank">三级三级久久三级久久</a>| <a href="http://www.hybdh.cn" target="_blank">一本大道加勒比久久综合</a>| <a href="http://www.qdjybj.cn" target="_blank">色偷偷888欧美精品久久久</a>| <a href="http://www.dyfls.cn" target="_blank">色婷婷综合久久久中文字幕</a>| <a href="http://www.chipsummit.cn" target="_blank">理论片午午伦夜理片久久 </a>| <a href="http://www.iview-inc.com.cn" target="_blank">女同久久</a>| <a href="http://www.yiyioo.cn" target="_blank">狠狠精品久久久无码中文字幕</a>| <a href="http://www.vwdg.cn" target="_blank">亚洲一区中文字幕久久</a>| <a href="http://www.reepee.cn" target="_blank">国产一区二区精品久久岳</a>| <a href="http://www.ehxs.cn" target="_blank">91亚洲国产成人久久精品</a>| <a href="http://www.effiliates.cn" target="_blank">久久美女网站免费</a>| <a href="http://www.spbbs.cn" target="_blank">国产一区二区三精品久久久无广告</a>| <a href="http://www.qsk2ko.cn" target="_blank">国产成人综合久久精品尤物</a>| <a href="http://www.pf925.cn" target="_blank">精品久久国产一区二区三区香蕉</a>| <a href="http://www.itewei.cn" target="_blank">久久久久无码国产精品不卡</a>| <a href="http://www.z1568.cn" target="_blank">伊人久久无码精品中文字幕</a>| <a href="http://www.yuhuangdong.com.cn" target="_blank">久久久精品国产免大香伊 </a>| <a href="http://www.xinxiang8.cn" target="_blank">欧美日韩精品久久久久</a>| <a href="http://www.2rwx2.cn" target="_blank">久久综合色之久久综合</a>| <a href="http://www.ahhncl.cn" target="_blank">伊人伊成久久人综合网777</a>| <a href="http://www.shawcai.cn" target="_blank">老男人久久青草av高清</a>| <a href="http://www.lsjtht.cn" target="_blank">国产高潮国产高潮久久久</a>| <a href="http://www.twkzl.cn" target="_blank">久久精品这里热有精品</a>| <a href="http://www.kqb8.cn" target="_blank">无夜精品久久久久久</a>| <a href="http://www.zhaozhounews.cn" target="_blank">97久久国产综合精品女不卡</a>| <a href="http://www.lnboxue.cn" target="_blank">国产精品久久影院</a>| <a href="http://www.enkids.cn" target="_blank">久久久久久av无码免费看大片</a>| <a href="http://www.gfwi.cn" target="_blank">久久精品国产99国产精品导航</a>| <a href="http://www.ovnz.cn" target="_blank">精品久久久无码人妻中文字幕豆芽</a>| <a href="http://www.dguv.cn" target="_blank">精品多毛少妇人妻AV免费久久</a>| <a href="http://www.mtdo.cn" target="_blank">一本久久a久久精品亚洲</a>| <a href="http://www.chainou.cn" target="_blank">9191精品国产免费久久</a>| <a href="http://www.sijishi.cn" target="_blank">久久无码中文字幕东京热</a>| <a href="http://www.manini.cn" target="_blank">久久精品国产秦先生</a>| <a href="http://www.whpcjs.cn" target="_blank">欧美亚洲国产精品久久高清</a>| <a href="http://www.v0008.cn" target="_blank">91精品国产高清久久久久久91</a>| <a href="http://www.uyqr.cn" target="_blank">久久无码中文字幕东京热</a>| <a href="http://www.qikan99.cn" target="_blank">久久精品国产一区二区三区日韩</a>| <a href="http://www.qiaoyishiqy6.com.cn" target="_blank">欧美精品一区二区久久</a>| <a href="http://www.cpfang.cn" target="_blank">欧美久久精品一级c片片</a>| <a href="http://www.2046film.cn" target="_blank">亚洲欧美日韩中文久久</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>