<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++</title><link>http://blogs.wankuma.com/episteme/category/416.aspx</link><description>C++</description><managingEditor>επιστημη</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>επιστημη</dc:creator><title>Handle-Body イディオム</title><link>http://blogs.wankuma.com/episteme/archive/2008/09/04/155518.aspx</link><pubDate>Thu, 04 Sep 2008 16:37:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/09/04/155518.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/155518.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/09/04/155518.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/155518.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/155518.aspx</trackback:ping><description>&lt;P&gt;C++Dayでmeltさんが紹介してくれた &lt;STRONG&gt;&lt;FONT face="Courier New"&gt;shared_ptr&lt;/FONT&gt;&lt;/STRONG&gt; を使ったおあそび。&lt;/P&gt;
&lt;P&gt;C#でいう参照型のようにふるまう猫。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;#include &amp;lt;memory&amp;gt;&lt;BR&gt;#include &amp;lt;string&amp;gt;&lt;BR&gt;#include &amp;lt;iostream&amp;gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;// VC++9 SP1 でサポートされた std::tr1::shared_ptr を使います&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;namespace std { using namespace std::tr1; }&lt;BR&gt;using namespace std;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;class &lt;FONT color=#0000ff&gt;Cat&lt;/FONT&gt; {&lt;BR&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// 猫Body&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; class &lt;FONT color=#ff0000&gt;CatImpl &lt;/FONT&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; friend class Cat;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string name;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string tail;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CatImpl(const string&amp;amp; n, const string&amp;amp; t) : name(n), tail(t) {}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void greet() const { cout &amp;lt;&amp;lt; name &amp;lt;&amp;lt; "だ" &amp;lt;&amp;lt; tail &amp;lt;&amp;lt; endl; }&lt;BR&gt;&amp;nbsp; public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~CatImpl() { cout &amp;lt;&amp;lt; "ばいばい" &amp;lt;&amp;lt; tail &amp;lt;&amp;lt; endl; }&lt;BR&gt;&amp;nbsp; };&lt;BR&gt;&amp;nbsp; std::shared_ptr&amp;lt;&lt;FONT color=#ff0000&gt;CatImpl&lt;/FONT&gt;&amp;gt; impl;　// 猫Handle&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; void greet() const { impl-&amp;gt;greet(); }&lt;BR&gt;&amp;nbsp; static Cat make(const string&amp;amp; n, const string&amp;amp; t) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;Cat&lt;/FONT&gt; result; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.impl = shared_ptr&amp;lt;&lt;FONT color=#ff0000&gt;CatImpl&lt;/FONT&gt;&amp;gt;(new &lt;FONT color=#ff0000&gt;CatImpl&lt;/FONT&gt;(n,t));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;int main() {&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Cat&lt;/FONT&gt; s = Cat::make("シュウたん","にゃー");&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Cat&lt;/FONT&gt; m = Cat::make("マグさん","ほげ");&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Cat&lt;/FONT&gt; c; &lt;FONT color=#008000&gt;// シュウたん/マグさん にすり替わります!!&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; &lt;FONT color=#008000&gt;// &lt;STRONG&gt;コピーしているように見せかけて、ぢつはしてまてーん&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; c = s; c.greet();&lt;BR&gt;&amp;nbsp; c = m; c.greet();&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;# C++ネタもたまには書かんとのぅ...&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/155518.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>C/C++の将来性</title><link>http://blogs.wankuma.com/episteme/archive/2008/09/01/154943.aspx</link><pubDate>Mon, 01 Sep 2008 09:39:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/09/01/154943.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/154943.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/09/01/154943.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/154943.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/154943.aspx</trackback:ping><description>&lt;P&gt;ネタ元:&lt;BR&gt;&lt;A id=RecentPosts__ctl15_Hyperlink2 HREF="/tyappi/archive/2008/08/31/154858.aspx"&gt;C/C++ の将来性&lt;/A&gt;　&lt;A id=RecentPosts__ctl9_Hyperlink2 HREF="/izmktr/archive/2008/09/01/154897.aspx"&gt;&lt;FONT color=#0000ff&gt;[C++]日輪の存在&lt;/FONT&gt;&lt;/A&gt;　&lt;A id=RecentPosts__ctl7_Hyperlink2 HREF="/tyappi/archive/2008/09/01/154906.aspx"&gt;&lt;FONT color=#0000ff&gt;C/C++ の将来性 その 2&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;僕があんまり語っちゃいけない希ガス^^; なのでさっくり。&lt;BR&gt;たくさんの言語が生まれ、そして消えていきます。&lt;BR&gt;消え方にもいろいろあって、ホントに影も形もなくなっちまうのもあれば、&lt;BR&gt;ほとんど見かけなくなってはいるものの&amp;#8221;その道"では磐石の存在であるものも。&lt;BR&gt;&lt;BR&gt;なんやかんやゆーてもね、C/C++は偉大であり巨大なんですよ。&lt;BR&gt;星の数ほどもある手続き型言語を一掃したのがCであり、&lt;BR&gt;Cのスゴさ(優れたとこも邪悪なとこも)を引き継いだのがC++ですからね。&lt;BR&gt;そしてまたOSから汎用アプリまで広汎にカバーするのもC/C++のウリです。&lt;/P&gt;
&lt;P&gt;とはいえ苦手な分野もたくさんあります。&lt;BR&gt;C++の欠点を克服すべく現れた多くの言語が隆盛を誇っています。&lt;BR&gt;C++以降に現れた言語なんだからC++より優れていてアタリマエ。&lt;BR&gt;が、そいつらがC++の影響を受けてないとは言わせないぜ。&lt;BR&gt;&lt;BR&gt;で、こんだけ巨大(言語仕様もユーザ数も)で影響力の大きい言語&lt;BR&gt;が急速に凋落するとは考えにくい。生まれて四半世紀の今現在でも&lt;BR&gt;言語仕様とライブラリの強化/拡張を続けているのがその証左です。&lt;BR&gt;&lt;BR&gt;C/C++は生き残りますよ確実に。&lt;BR&gt;ただ、それが僕らの身近なところに棲息するかはなんともね。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/154943.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>わんくま同盟横浜勉強会 #1 「C++ Day」</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/30/154776.aspx</link><pubDate>Sat, 30 Aug 2008 21:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/30/154776.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/154776.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/30/154776.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/154776.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/154776.aspx</trackback:ping><description>&lt;P&gt;お疲れっしたー。&lt;/P&gt;
&lt;P&gt;生憎の天候の中集まってくださったみなさま、&lt;BR&gt;毎回の勉強会運営にご助勢くださるスタッフ各位、&lt;BR&gt;おかげさまで滞りなく終えることができました。&lt;BR&gt;心より御礼申し上げます。&lt;BR&gt;&lt;BR&gt;まぁ、いーあんばいの"こゆさ"で楽しめました。&lt;BR&gt;これより薄いとつまらんし、濃いとついてけなくなるかなー&lt;BR&gt;&lt;BR&gt;で、懇親会で出たネタで「Graphics Day」はいかがかと。&lt;BR&gt;DirectXやらOpenGLやら、あるいはその応用としてのゲームとか。&lt;BR&gt;美麗なデモ満載のセッションを観客として愉しみたく存じます。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/154776.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>こばりあんと</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/15/153112.aspx</link><pubDate>Fri, 15 Aug 2008 14:04:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/15/153112.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153112.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/15/153112.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153112.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153112.aspx</trackback:ping><description>&lt;P&gt;インスパイア元 → &lt;A href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;amp;namber=23453"&gt;IListとList&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;ちょっとしたことが気になって試してみた。&lt;BR&gt;まず C++:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;#include &amp;lt;iostream&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;using namespace std;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt;* me()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { cout &amp;lt;&amp;lt; "Base::me()\n"; return &lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#ff0000&gt;Derived &lt;/FONT&gt;: public &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;* me() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { cout &amp;lt;&amp;lt; "Derived::me()\n"; return &lt;FONT color=#ff0000&gt;this&lt;/FONT&gt;; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;int main() {&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt;* p = new &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt;* r = p-&amp;gt;me();&lt;BR&gt;&amp;nbsp; if ( dynamic_cast&amp;lt;&lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;*&amp;gt;(r) ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "Derived returned.\n";&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;Base.me() と Derived.me() は戻り値の型が一致しません。&lt;BR&gt;でも呑んでくれます。DerivedはBaseから導出されてんで&lt;BR&gt;Derived*はBase*と看做してもえぇからです。&lt;BR&gt;&lt;BR&gt;次いでC#&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;using System;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public virtual &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; me()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Console.WriteLine("Base.me()"); return &lt;FONT color=#0000ff&gt;this&lt;/FONT&gt;; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt; : &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; {&lt;BR&gt;public override &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt; me() &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Console.WriteLine("Derived.me()"); return &lt;FONT color=#ff0000&gt;this&lt;/FONT&gt;; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class Program {&lt;BR&gt;&amp;nbsp; static void Main() {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;Base&lt;/FONT&gt; p = new &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt; Base&lt;/FONT&gt; r = p.me();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( r is &lt;FONT color=#ff0000&gt;Derived&lt;/FONT&gt; ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Derived returned.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;ダメっすね。&lt;BR&gt;&lt;FONT color=#808080&gt;&amp;nbsp; error CS0508: 'Derived.me()': オーバーライドされたメンバ&lt;BR&gt;&amp;nbsp; 'Base.me()' に対応するために戻り値の型は 'Base' でなければなりません&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;カタいことゆーなよおーーー&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;※ ちょい昔はC++でもダメでした。シグニチャに完全一致が求められました。&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153112.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>Update祭り粛々と開催中</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/15/153099.aspx</link><pubDate>Fri, 15 Aug 2008 12:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/15/153099.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/153099.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/15/153099.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/153099.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/153099.aspx</trackback:ping><description>&lt;P&gt;Visual Studio 2008 ServicePack1 ですねー&lt;BR&gt;&lt;BR&gt;βあててるとアンインスコせにゃならずちぃとめんどっちー&lt;BR&gt;しかも今回のUpdate、えれぇ時間かかります。&lt;BR&gt;&lt;BR&gt;επι的にはTR1が使えるようになったのが一番の萌えポイント。&lt;BR&gt;ただ、TR1で提供されるクラスﾓﾛﾓﾛが名前空間 std じゃなく&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;std::tr1&lt;/FONT&gt; なので、&lt;FONT face="Courier New" size=2&gt;std::tr1::shared_ptr&amp;lt;T&amp;gt;&lt;/FONT&gt; なんてことに&lt;BR&gt;なりちょとｳｾﾞｰです。&lt;BR&gt;&lt;BR&gt;そこで &lt;FONT face="Courier New" color=#0000ff&gt;&lt;STRONG&gt;namespace std { using namespace tr1; }&lt;/STRONG&gt;&lt;/FONT&gt; って&lt;BR&gt;おまじないを唱えると &lt;FONT face="Courier New" size=2&gt;std::shared_ptr&amp;lt;T&amp;gt;&lt;/FONT&gt;&amp;nbsp; と書けてほんのりしあわせ♪&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/153099.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>名乗りを上げました</title><link>http://blogs.wankuma.com/episteme/archive/2008/08/13/152866.aspx</link><pubDate>Wed, 13 Aug 2008 11:19:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/08/13/152866.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/152866.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/08/13/152866.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/152866.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/152866.aspx</trackback:ping><description>&lt;P&gt;来る09/20はわんくま東京勉強会#24です。&lt;BR&gt;&lt;BR&gt;ディレクターは はつね さん、&lt;BR&gt;僕はソートをネタとしたLT(Ligtening Talk)に手ぇ挙げちゃいました。&lt;BR&gt;LTってやったことないのよねー。&lt;BR&gt;短い尺で喋るのってドキドキです、&lt;BR&gt;10分以上あるなら尺の調整が利くんですけど&lt;BR&gt;わずか5分ですからね。きっちり練習しとかんと...&lt;/P&gt;
&lt;P&gt;さて、肝心のネタですが、なんにしましょ。&lt;BR&gt;あんまり語られてないポい「ヒープソート」&lt;BR&gt;を5分で語ってみましょうかしら。&lt;BR&gt;&lt;BR&gt;早速ネタ仕込み。Visual Studio立ち上げてごりごり書く。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;template&amp;lt;typename T&amp;gt;&lt;BR&gt;void Sift(T data[], int L, int R) {&lt;BR&gt;&amp;nbsp; int i = L;&lt;BR&gt;&amp;nbsp; int j = 2*i + 1;&lt;BR&gt;&amp;nbsp; T x = data[L];&lt;BR&gt;&amp;nbsp; if ( j &amp;lt; R &amp;amp;&amp;amp; data[j] &amp;lt; data[j+1] ) ++j;&lt;BR&gt;&amp;nbsp; while ( j &amp;lt;= R &amp;amp;&amp;amp; x &amp;lt; data[j] ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[i] = data[j];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = j;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; j = 2*j + 1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( j &amp;lt; R &amp;amp;&amp;amp; data[j] &amp;lt; data[j+1] ) ++j;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; data[i] = x;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;/*&lt;BR&gt;&amp;nbsp;* ヒープソート&lt;BR&gt;&amp;nbsp;*/&lt;BR&gt;template&amp;lt;typename T&amp;gt;&lt;BR&gt;void Sort(T data[],int n) {&lt;BR&gt;&amp;nbsp; int L = n / 2;&lt;BR&gt;&amp;nbsp; int R = n - 1;&lt;BR&gt;&amp;nbsp; while ( L &amp;gt; 0 ) Sift(data, --L, R);&lt;BR&gt;&amp;nbsp; while ( R &amp;gt; 0 ) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; T x = data[0];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[0] = data[R];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data[R] = x;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sift(data, L, --R);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;コードの解説したってつまんない。さーてこれをどうすべか。&lt;BR&gt;&lt;BR&gt;※ 昨日帰りがけに立ち寄った本屋でなにげに手にした一冊にあったヒトコト:&lt;BR&gt;　「&lt;STRONG&gt;スピーチなんかするな。ショーにしてしまえ&lt;/STRONG&gt;」 いぃことゆー♪&lt;BR&gt;&lt;BR&gt;[追記] STL使うと&lt;A href="http://blogs.wankuma.com/ryoichi/archive/2008/08/14/152979.aspx"&gt;シュウたん並みに脱力&lt;/A&gt;します。&lt;FONT face="Courier New"&gt;o&amp;lt;\_&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;#include &amp;lt;iostream&amp;gt;&lt;BR&gt;#include &amp;lt;algorithm&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;int main() {&lt;BR&gt;&amp;nbsp; int data[] = { 9, 7, 5, 3, 1, 8, 6, 4, 2, 0 };&lt;BR&gt;&amp;nbsp;&lt;STRONG&gt; std::&lt;FONT color=#ff0000&gt;make_heap&lt;/FONT&gt;(data, data+10);&lt;FONT color=#008000&gt; // ぶっちゃけ&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp; std::&lt;FONT color=#ff0000&gt;sort_heap&lt;/FONT&gt;(data, data+10);&lt;FONT color=#008000&gt; // こんだけ。&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; for ( int i = 0; i &amp;lt; 10; ++i )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::cout &amp;lt;&amp;lt; data[i] &amp;lt;&amp;lt; ' ';&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/152866.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>C++屋なら読んどけ</title><link>http://blogs.wankuma.com/episteme/archive/2008/07/31/151268.aspx</link><pubDate>Thu, 31 Jul 2008 13:44:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/07/31/151268.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/151268.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/07/31/151268.aspx#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/151268.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/151268.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://codezine.jp/a/article/aid/2834.aspx"&gt;あなたはC++の発明者？　それとも創造者？&lt;BR&gt;～Bjarne Stroustrup氏との対話～&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;われらが&lt;STRONG&gt;&lt;FONT color=#ff0000 size=5&gt;Bjarneセンセ&lt;/FONT&gt;&lt;/STRONG&gt;のインタビュー。&lt;BR&gt;CodeZineで短期連載の模様。&lt;BR&gt;&lt;BR&gt;で、Bjarneセンセの新刊が出るらしい。&lt;BR&gt;&lt;A href="http://www.informit.com/store/product.aspx?isbn=0321543726"&gt;Programming: Principles and Practice Using C++&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;C++造物主の手による&lt;STRONG&gt;教本&lt;/STRONG&gt;らしっすよ。&lt;BR&gt;&lt;A href="http://astore.amazon.co.jp/episteme00-22/detail/4797328541/503-6660086-6234330"&gt;D&amp;E&lt;/A&gt;に続いて翻訳監修やりたいなー&lt;BR&gt;編集さんにﾗﾌﾞｺｰﾙ送っとこ♪&lt;BR&gt;# 原著1300page超。翻訳するとボリューム増なので&lt;BR&gt;# おそらく製本限界を超えます。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/151268.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>それぢゃいかんだろぉ</title><link>http://blogs.wankuma.com/episteme/archive/2008/07/30/150996.aspx</link><pubDate>Wed, 30 Jul 2008 09:49:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/07/30/150996.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/150996.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/07/30/150996.aspx#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/150996.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/150996.aspx</trackback:ping><description>&lt;P&gt;&lt;A id=_decb82b48059ef77_HomePageDays_DaysList__ctl0_DayItem_DayList__ctl0_TitleUrl HREF="/episteme/archive/2008/07/30/150978.aspx"&gt;&lt;FONT color=#0000ff&gt;それでいいんですかぃ?&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;のつづき。&lt;/P&gt;
&lt;P&gt;拡張メソッドによる&lt;STRONG&gt;なんちゃって多重継承&lt;/STRONG&gt;に風穴を空けてみた。&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Android&lt;/STRONG&gt; RTI = new Android();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTI.&lt;FONT color=#800080&gt;move&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;IMachine&lt;/FONT&gt; m = RTI; m.&lt;FONT color=#0000ff&gt;move&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ff0000&gt;IHuman&lt;/FONT&gt;&amp;nbsp;&amp;nbsp; h = RTI; h.&lt;FONT color=#ff0000&gt;move&lt;/FONT&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;IMachine&lt;/FONT&gt;/&lt;FONT face="Courier New"&gt;IHuman&lt;/FONT&gt;にキャストしただけで&lt;BR&gt;&lt;FONT face="Courier New"&gt;Android&lt;/FONT&gt;の歩き方を忘れちゃいます。&lt;/P&gt;
&lt;P&gt;正統(?)多重継承(C++)だと:&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New"&gt;#include &amp;lt;iostream&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#0000ff&gt;Machine&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual void &lt;FONT color=#0000ff&gt;move&lt;/FONT&gt;()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { std::cout &amp;lt;&amp;lt; "計算機がモーターを制御します\n"; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#ff0000&gt;Human&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual void &lt;FONT color=#ff0000&gt;move&lt;/FONT&gt;()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { std::cout &amp;lt;&amp;lt; "神経系が筋肉を制御します\n"; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;class &lt;FONT color=#800080&gt;Android&lt;/FONT&gt; : public &lt;FONT color=#0000ff&gt;Machine&lt;/FONT&gt;, public &lt;FONT color=#ff0000&gt;Human&lt;/FONT&gt; {&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp; virtual void &lt;FONT color=#800080&gt;move&lt;/FONT&gt;()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { std::cout &amp;lt;&amp;lt; "ギコギコ歩きますー\n"; }&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;int main() {&lt;BR&gt;&amp;nbsp; &lt;FONT color=#800080&gt;Android&lt;/FONT&gt; RTI;&lt;BR&gt;&amp;nbsp; RTI.&lt;FONT color=#800080&gt;move&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp; &lt;FONT color=#0000ff&gt;Machine&lt;/FONT&gt;* m = &amp;amp;RTI; m-&amp;gt;&lt;FONT color=#800080&gt;move&lt;/FONT&gt;();&lt;BR&gt;&amp;nbsp; &lt;FONT color=#ff0000&gt;Human&lt;/FONT&gt;*&amp;nbsp;&amp;nbsp; h = &amp;amp;RTI; h-&amp;gt;&lt;FONT color=#800080&gt;move&lt;/FONT&gt;();&lt;BR&gt;};&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;ちゃんと継承してるんで、ちゃんと"ギコギコ"歩きます。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/150996.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>C++屋はプロパティ慣れしてません(おまけ) </title><link>http://blogs.wankuma.com/episteme/archive/2008/07/26/150455.aspx</link><pubDate>Sat, 26 Jul 2008 01:40:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/07/26/150455.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/150455.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/07/26/150455.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/150455.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/150455.aspx</trackback:ping><description>&lt;A id=viewpost.ascx_TitleUrl HREF="/episteme/archive/2008/07/25/150282.aspx"&gt;&lt;FONT color=#0000ff&gt;C++屋はプロパティ慣れしてません(つづき)&lt;/FONT&gt;&lt;/A&gt; ふぉろー。&lt;BR&gt;&lt;BR&gt;　　&lt;FONT color=#808080&gt;ライブラリでプロパティを実装することもできますが &lt;BR&gt;　　&lt;/FONT&gt;&lt;A href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf"&gt;&lt;FONT color=#808080&gt;http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdf&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#808080&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;ないすコメント &amp;gt; アキラさん&lt;BR&gt;このコード、一か所だけマチガイ(?)がありました。&lt;BR&gt;&lt;FONT face="Courier New"&gt;typename&lt;/FONT&gt; を忘れてます。&lt;BR&gt;&lt;BR&gt;↓ちゃんと動くやつ。&lt;BR&gt;&lt;IFRAME style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginWidth=0 marginHeight=0 src="http://cid-07c558f8e11e708f.skydrive.live.com/embedrowdetail.aspx/WillBeRemovedSoon/Property.zip" frameBorder=0 scrolling=no&gt;&lt;/IFRAME&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/150455.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>επιστημη</dc:creator><title>くまさばちゃん三連休</title><link>http://blogs.wankuma.com/episteme/archive/2008/07/22/149742.aspx</link><pubDate>Tue, 22 Jul 2008 14:30:00 GMT</pubDate><guid>http://blogs.wankuma.com/episteme/archive/2008/07/22/149742.aspx</guid><wfw:comment>http://blogs.wankuma.com/episteme/comments/149742.aspx</wfw:comment><comments>http://blogs.wankuma.com/episteme/archive/2008/07/22/149742.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/episteme/comments/commentRss/149742.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/episteme/services/trackbacks/149742.aspx</trackback:ping><description>&lt;P&gt;復旧してなによりですわ。&lt;/P&gt;
&lt;P&gt;それはともかくネタ元 → &lt;A id=viewpost.ascx_TitleUrl HREF="/rti/archive/2008/07/22/149730.aspx" addEventLogcatcher="true"&gt;&lt;FONT color=#0066aa&gt;何で必要になったのか？&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;...ふん、そんなのC++ならどっちゅーとこないわっ&lt;BR&gt;&lt;BR&gt;&lt;FONT face="Courier New" size=2&gt;int main() {&lt;BR&gt;&amp;nbsp; char ptn[] = "123456789";&lt;BR&gt;&amp;nbsp; do&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( atoi(string(ptn+0,ptn+5).c_str()) - &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atoi(string(ptn+5,ptn+9).c_str()) == 33333 )&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; ptn &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp; while ( next_permutation(ptn, ptn+9) );&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/episteme/aggbug/149742.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>