<?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>プログラム</title><link>http://blogs.wankuma.com/e3475/category/683.aspx</link><description>プログラム</description><managingEditor>恣意の（松下和貴）</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>恣意の（松下和貴）</dc:creator><title>type_traitsの小洒落た使い道って何だろう？</title><link>http://blogs.wankuma.com/e3475/archive/2008/01/13/117229.aspx</link><pubDate>Sun, 13 Jan 2008 03:06:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2008/01/13/117229.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/117229.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2008/01/13/117229.aspx#Feedback</comments><slash:comments>233</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/117229.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/117229.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;&lt;A href="http://blogs.wankuma.com/episteme/"&gt;東方算程譚&lt;/A&gt;：&lt;A href="http://blogs.wankuma.com/episteme/archive/2008/01/12/117177.aspx"&gt;おかしいぞTR1の正規表現&lt;/A&gt; &lt;BR&gt;&amp;gt;# type_traitsの小洒落た使いみちおしえてくださいよぉ♪ &lt;BR&gt;&lt;BR&gt;そいや、仕事をする上で type_traits の有効利用ってどのレベルだろう？ &lt;BR&gt;&lt;BR&gt;boostの他の実装の移植について殆ど必須なように&lt;BR&gt;本当に良く使われる実装についてはあると便利な道具なんだが &lt;BR&gt;道具を組み合わせて最終的な処理を実装するレベルだと使う必要性がない&amp;nbsp;&lt;BR&gt;&lt;BR&gt;例が悪いが [template&lt;CLASS T&gt; &lt;CLASS T&gt;struct point;]のような奴に &lt;BR&gt;普通に考えたら[T]に[int&amp;amp;]とかを指定する奴はいないのだが &lt;BR&gt;「テンプレートの中でテンプレートを呼んでー」とかがディープになりだして&lt;BR&gt;MPLレベルで組みだすとこの辺りの型を気にしないといけないので必要になる &lt;BR&gt;&lt;BR&gt;# 別にpoint&amp;lt;int&amp;amp;&amp;gt;&lt;INT&amp;&gt;とか指定されても大丈夫なように&lt;BR&gt;# 中で is_reference&amp;lt;&amp;gt;からremove_reference&amp;lt;&amp;gt;しても良いが&lt;BR&gt;# 正直、自分で作るクラスについては「何だかなぁ」感が漂う（認識が甘い？&lt;BR&gt;#&lt;BR&gt;# あ、ちなみにMPLは&lt;A href="http://blogs.wankuma.com/e3475/archive/2007/11/08/106723.aspx"&gt;以前に書いた&lt;/A&gt;ような奴でふ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;最初にtype_traitsに興味を持ったのは[&lt;A href="http://d.hatena.ne.jp/yotto-k/20060807"&gt;例外を投げないswap&lt;/A&gt;]を見て &lt;BR&gt;「うわ、何コレ？魔法ですか？」となりMPLの勉強をはじめたんだが &lt;BR&gt;未だに汎用用途だと実装コストに見合う気配がない &lt;BR&gt;&lt;BR&gt;# 小説読みに励んで勉強をサボりすぎてるともいう &lt;BR&gt;# いや、単純においらの想像力がゴミなだけだろうがね &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;んー、このあたりの解答は2chのboostスレの方々を筆頭に（して良いのか？） &lt;BR&gt;pstadeライブラリのmb2syncさんやそれを平然と使うuskzさんとか、&lt;BR&gt;バリバリと使ってる人だと答えられるんだろうなぁ &lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/117229.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>【C++】FizzBuzz問題でお勉強</title><link>http://blogs.wankuma.com/e3475/archive/2007/11/08/106723.aspx</link><pubDate>Thu, 08 Nov 2007 00:00:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/11/08/106723.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/106723.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/11/08/106723.aspx#Feedback</comments><slash:comments>186</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/106723.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/106723.aspx</trackback:ping><description>&lt;BLOCKQUOTE class=code&gt;
&lt;H5 id=title&gt;　mplとlambdaで遊んだFizzBuzz問題&lt;/H5&gt;
&lt;P&gt;&lt;PRE style="FONT-SIZE: 12px"&gt;&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &amp;lt;iostream&amp;gt;
&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &amp;lt;boost/mpl/if.hpp&amp;gt;
&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &amp;lt;boost/mpl/range_c.hpp&amp;gt;
&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &amp;lt;boost/mpl/for_each.hpp&amp;gt;
&lt;SPAN class=keyword&gt;#include&lt;/SPAN&gt; &amp;lt;boost/lambda/lambda.hpp&amp;gt;
&lt;SPAN class=keyword&gt;namespace&lt;/SPAN&gt; mpl    = boost::mpl;
&lt;SPAN class=keyword&gt;namespace&lt;/SPAN&gt; lambda = boost::lambda;
&lt;BR&gt;
&lt;SPAN class=keyword&gt;struct&lt;/SPAN&gt; Fizz     {&lt;SPAN class=keyword&gt;operator&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;const&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;char&lt;/SPAN&gt;*() {&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; "Fizz";}};
&lt;SPAN class=keyword&gt;struct&lt;/SPAN&gt; Buzz     {&lt;SPAN class=keyword&gt;operator&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;const&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;char&lt;/SPAN&gt;*() {&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; "Buzz";}};
&lt;SPAN class=keyword&gt;struct&lt;/SPAN&gt; FizzBuzz {&lt;SPAN class=keyword&gt;operator&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;const&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;char&lt;/SPAN&gt;*() {&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; "FizzBuzz";}};
&lt;BR&gt;
&lt;SPAN class=keyword&gt;template&lt;/SPAN&gt; &amp;lt;&lt;SPAN class=keyword&gt;typename&lt;/SPAN&gt; T&amp;gt; &lt;SPAN class=keyword&gt;struct&lt;/SPAN&gt; Integer
{&lt;SPAN class=keyword&gt;operator&lt;/SPAN&gt; &lt;SPAN class=keyword&gt;typename&lt;/SPAN&gt; T::value_type() {&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; T::value;}};
&lt;BR&gt;
&lt;SPAN class=keyword&gt;template&lt;/SPAN&gt; &amp;lt;&lt;SPAN class=keyword&gt;typename&lt;/SPAN&gt; T&amp;gt;
&lt;SPAN class=keyword&gt;struct&lt;/SPAN&gt; fizzbuzz_translator
{
  &lt;SPAN class=keyword&gt;typedef&lt;/SPAN&gt;
    &lt;SPAN class=keyword&gt;typename&lt;/SPAN&gt; mpl::if_c&amp;lt;!(T::value%15),  FizzBuzz,
      &lt;SPAN class=keyword&gt;typename&lt;/SPAN&gt; mpl::if_c&amp;lt;!(T::value%3), Fizz,
      &lt;SPAN class=keyword&gt;typename&lt;/SPAN&gt; mpl::if_c&amp;lt;!(T::value%5), Buzz,
                                        Integer&amp;lt;T&amp;gt;
    &amp;gt;::type &amp;gt;::type &amp;gt;::type             type;
};
&lt;BR&gt;
&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt; main()
{
  mpl::for_each&amp;lt;
      mpl::range_c&amp;lt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;,1,101&amp;gt;,
      fizzbuzz_translator&amp;lt;mpl::_1&amp;gt; &amp;gt;
    (std::cout &amp;lt;&amp;lt; lambda::_1 &amp;lt;&amp;lt; '\n');
  &lt;SPAN class=keyword&gt;return&lt;/SPAN&gt; 0;
}
&lt;/PRE&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;見苦しい言い訳をさせてくれ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BIG&gt;&lt;BIG&gt;こんなコードになる予定じゃなかったんだ&lt;/BIG&gt;&lt;/BIG&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;最初はboost::lambda::ifとかで遊んでみようかと思ってたのに &lt;BR&gt;boost::lambda自体を使ったことなかったこともあって &lt;BR&gt;エラー潰している内にこんなコードに...○|￣|_ &lt;BR&gt;&lt;BR&gt;書いてみようかと思ったきっかけは&lt;A href="http://d.hatena.ne.jp/uskz/20071011/p2"&gt;このページのコード&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;このコードが既にC++にすら見えないと思ったのと &lt;BR&gt;「lambdaだけでも十分に従来のC++から外れないか？」と思い &lt;BR&gt;帰宅してちゃかちゃかと組んでみたんだけど随分と太ったコードがが &lt;BR&gt;&lt;BR&gt;どうせなら、全部マクロとかで作るとかのほうが面白かったかと後悔中 &lt;BR&gt;&lt;BR&gt;# つってもboost::preprocessorでのたうち回っている最中だから &lt;BR&gt;# どの道、今の状態じゃマクロだけで組むとか無理('A`) &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;遊びで組んだコードで凹むとか、か弱すぎるぞ、おいら...○|￣|_ &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/106723.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>書籍：ロベールのC++入門講座</title><link>http://blogs.wankuma.com/e3475/archive/2007/11/06/106403.aspx</link><pubDate>Tue, 06 Nov 2007 18:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/11/06/106403.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/106403.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/11/06/106403.aspx#Feedback</comments><slash:comments>234</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/106403.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/106403.aspx</trackback:ping><description>&lt;P&gt;&lt;SPAN style="FONT-FAMILY: monospace"&gt;&lt;BR&gt;ネタ元：[&lt;A href="http://d.hatena.ne.jp/Ozy/20071106/p1"&gt;Cozy Ozy&lt;/A&gt;] &lt;BR&gt;　　　　[&lt;A href="http://d.hatena.ne.jp/uskz/20071106/p3"&gt;低学歴無能俸給生活者の日記＞＜&lt;/A&gt;] &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://d.hatena.ne.jp/asin/4839926050"&gt;ロベールのC++入門講座&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;うはｗｗｗｗｗ &lt;BR&gt;ついに書籍化されたｗｗｗｗ &lt;BR&gt;&lt;BR&gt;新人にC++勉強させるときに「書籍化されたらなぁ」と思ってたら &lt;BR&gt;何のことはなく、ホントに実現されていやがったｗｗｗ &lt;BR&gt;&lt;BR&gt;# そもそも、&lt;A href="http://www7b.biglobe.ne.jp/~robe/"&gt;ロベールの部屋&lt;/A&gt;に関しては &lt;BR&gt;# 自分のC++を勉強する取っ掛かりであったのさ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;お世話になった感謝もこめて予約した &lt;BR&gt;マジでどんな加筆修正されてんのか楽しみなんだがｗ &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/106403.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>もう一回、色々と読み返さないとなぁ</title><link>http://blogs.wankuma.com/e3475/archive/2007/11/05/106095.aspx</link><pubDate>Mon, 05 Nov 2007 17:51:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/11/05/106095.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/106095.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/11/05/106095.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/106095.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/106095.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;&lt;A href="http://d.hatena.ne.jp/phoenix_hiro/"&gt;雑記&lt;/A&gt;：&lt;A href="http://d.hatena.ne.jp/phoenix_hiro/20071031/1193846394"&gt;C++予約識別子&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&amp;gt; ・underscore２個で始まるものは予約。 &lt;BR&gt;&amp;gt; underscore + uppercaseで始まるものも予約。&lt;BR&gt;&amp;gt; （こいつらはどんなときもアウト。）&lt;BR&gt;&amp;gt; ・underscoreで始まるものは、global namespace &amp;amp; ::std内で予約&lt;BR&gt;&lt;BR&gt;ふむ、ずっと(3年くらい)"_"+"小文字"は合法だと思ってたけど &lt;BR&gt;これは思いっきり後者にひっかかっていたわけね &lt;BR&gt;&lt;BR&gt;# 以前に774RRさんに突っ込まれたときに &lt;BR&gt;# 「えー、合法ちゃうん？」とか答えていたわけなんだが、 &lt;BR&gt;# 恥の上塗りしてたわけね・・・ホントごめんなさい＞774RRさん &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;うー、この命名方法、個人的には凄ぇ使いやすかったんだけどなぁ &lt;BR&gt;完全に逃げ場がなくなったので、ホントに今後は自重しよう...○|￣|_ &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/106095.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>たかがテトリス、されどテトリス</title><link>http://blogs.wankuma.com/e3475/archive/2007/11/05/106036.aspx</link><pubDate>Mon, 05 Nov 2007 15:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/11/05/106036.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/106036.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/11/05/106036.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/106036.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/106036.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;&lt;A href="http://zapanet.info/blog/"&gt;[Z]ZAPAブロ～グ2.0&lt;/A&gt;：&lt;A href="http://zapanet.info/blog/item/1130"&gt;あの565バイトテトリスが、ついに500バイトを切った&lt;/A&gt; &lt;BR&gt;&lt;A href="http://d.hatena.ne.jp/Ozy/"&gt;Cozy Ozy&lt;/A&gt;：&lt;A href="http://d.hatena.ne.jp/Ozy/20071104"&gt;[Short Coding]482バイトテトリス&lt;/A&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;# 休日、日がな一日小説読む情熱における1%でも &lt;BR&gt;# プログラム関係へ熱意を向けられないものだろうか('A`) &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;・・・ &lt;BR&gt;&lt;BR&gt;&lt;A href="http://blogs.wankuma.com/episteme/"&gt;東方算程譚&lt;/A&gt;：&lt;A href="http://blogs.wankuma.com/episteme/archive/2007/11/04/105829.aspx"&gt;こんなんでモチベーション上がんのかよ&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;FizzBuzz問題が色んなblogで取上げられたのは半年ぐらい前だっけ？ &lt;BR&gt;&lt;BR&gt;当然の流れのように、一行プログラムへ走ったりされて &lt;BR&gt;ググると色んな楽しいソースを発見することができるわけで...&lt;BR&gt;&lt;BR&gt;そんな中、当時のCで書かれたショートコードに &lt;BR&gt;あまりにも衝撃を受けて思わずメモ帳にコピーしたものがあった&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;printf(printf("%s%s",i%3?"":"Fizz",i%5?"":"Buzz")?"\n":"%d\n",i) &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;コピーしたのはこの部分だけで、全体コードもサイトも不明 &lt;BR&gt;&lt;BR&gt;# 動かしたきゃmain(){for(...){}}の中に突っ込めば良いんだが、 &lt;BR&gt;# 何となく関数化してワンライナー化されてたような記憶が &lt;BR&gt;&lt;BR&gt;そして当時も今も、やっぱり持った感想は同じで &lt;BR&gt;極上の笑みで「狂ってやがる、こいつら」と呟いたわけさ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;んー、おいらも愛すべきバカの末席に加われるようにならんとなぁ... &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/106036.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>【C++】無い物ねだり</title><link>http://blogs.wankuma.com/e3475/archive/2007/09/13/95917.aspx</link><pubDate>Thu, 13 Sep 2007 11:06:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/09/13/95917.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/95917.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/09/13/95917.aspx#Feedback</comments><slash:comments>159</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/95917.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/95917.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;特に明確な目的があったわけではないのだが、 &lt;BR&gt;ふと気になったので試しに書いてみたコードが以下 &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;
&lt;BLOCKQUOTE class=code&gt;
&lt;H5 id=title&gt;　コンストラクタを使用した引数の自動変換&lt;/H5&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;PRE class=csharpcode&gt;&lt;P&gt;
&lt;BR&gt;&lt;SPAN class=kwrd&gt;struct&lt;/SPAN&gt; A {A() {}};
&lt;BR&gt;&lt;SPAN class=kwrd&gt;struct&lt;/SPAN&gt; B {B(A){}};
&lt;BR&gt;&lt;SPAN class=kwrd&gt;struct&lt;/SPAN&gt; C {C(B){}};
&lt;BR&gt;&lt;SPAN class=kwrd&gt;struct&lt;/SPAN&gt; D {D(C){}};
&lt;BR&gt;&lt;BR&gt;
&lt;BR&gt;&lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; hoge()
&lt;BR&gt;{
&lt;BR&gt;    A _a;
&lt;BR&gt;    B _b = _a;
&lt;BR&gt;    C _c = _b;
&lt;BR&gt;
&lt;BR&gt;    D _d1 = _a;  &lt;SPAN class=rem&gt;// NG&lt;/SPAN&gt;
&lt;BR&gt;    D _d2 = _b;  &lt;SPAN class=rem&gt;// OK&lt;/SPAN&gt;
&lt;BR&gt;    D _d3 = _c;  &lt;SPAN class=rem&gt;// OK&lt;/SPAN&gt;
&lt;BR&gt;}
&lt;/P&gt;
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;ふむ、VC++【6.0|7.1|8.0】で試してみたんだが、 &lt;BR&gt;適合するクラスのコンストラクタを暗黙的に呼び出してくれるのは &lt;BR&gt;上記の結果の通り、最大で一枚までしか探してくれないみたいなのねん &lt;BR&gt;&lt;BR&gt;「まぁ、そんなものか」と思ったら、 &lt;BR&gt;手持ちの【cygwin+gcc3.3.3】では駄目でやんの... &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;･･･むぅ、正直、メリットよりもデメリットの方が多そうだけど &lt;BR&gt;出来ないとなったら、余計に欲しくなるのは何でだろうか &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/95917.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>わんくま電卓祭り</title><link>http://blogs.wankuma.com/e3475/archive/2007/06/29/82914.aspx</link><pubDate>Fri, 29 Jun 2007 14:34:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/06/29/82914.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/82914.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/06/29/82914.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/82914.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/82914.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;&lt;BIG&gt;&lt;A href="http://blogs.wankuma.com/aqua/archive/2007/06/27/82456.aspx"&gt;第1回 『 The 祭り 』＠AQUA's .NET 奮闘記&lt;/A&gt;&lt;/BIG&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;とりあえず、要求仕様をガン無視(ぉぃ)した結果が以下 &lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.e3475.com/prog/e3475calc.zip"&gt;e3475calc.zip (VC2005+boost)&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;# 2007/11/08追記：アップしていたサバがなくなってた('A`)&lt;BR&gt;# boost::spiritとかで検索して来た人、ホントにごめんなさいorz&lt;BR&gt;&lt;BR&gt;　　出力例： &lt;BR&gt;　　　input:1 - (2 + 3) + 4 * 5 - 6 &lt;BR&gt;　　　　rpn:1 2 3 + - 4 5 * + 6 - &lt;BR&gt;　　　　ans:10 &lt;BR&gt;&lt;BR&gt;　　　input:((8 + 15) * 3) / (5 * 2) - ((2 * 10) + 9) * 4 + 10 &lt;BR&gt;　　　　rpn:8 15 + 3 * 5 2 * / 2 10 * 9 + 4 * - 10 + &lt;BR&gt;　　　　ans:-99.1 &lt;BR&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;&lt;BR&gt;&lt;BR&gt;つーか、自分でも酷く遠回りな実装だと自覚してます &lt;BR&gt;実際のところ、数式渡して結果が欲しかったら下で良いのよ &lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.kmonos.net/alang/boost/classes/spirit.html"&gt;boost::spirit＠Let's Boost&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;最初に「･･･は、計算機･･･？」で思い出したのが、このboost::spirit &lt;BR&gt;&lt;BR&gt;「なんかサンプルのネタないかなぁ」で勉強が停止していたので、 &lt;BR&gt;これを元に「一般式→RPN→結果」のように一枚挿もうと思ったわけなのさ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;んで、見事に&lt;BIG&gt;&lt;BIG&gt;&lt;STRONG&gt;手段と目的が入れ替わった&lt;/STRONG&gt;&lt;/BIG&gt;&lt;/BIG&gt;んさ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;boost::spiritの使い方が分かったから良しとすべきなんだろうけど &lt;BR&gt;GUIでの投稿が多い中、CUIなうえに実装も変態チックなのはアレだなぁ... &lt;BR&gt;&lt;BR&gt;# さて、ここからどうやって要求仕様の７つをクリアしてやろうか... &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/82914.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の（松下和貴）</dc:creator><title>しばらく、英語との戦いなのかなぁ</title><link>http://blogs.wankuma.com/e3475/archive/2007/04/20/72170.aspx</link><pubDate>Fri, 20 Apr 2007 03:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2007/04/20/72170.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/72170.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2007/04/20/72170.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/72170.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/72170.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;　"Modern C++ Design" &lt;BR&gt;　"C++ Template Metaprogramming" &lt;BR&gt;&lt;BR&gt;　今更ながら以上の書籍を買ったわけなのだが、中身を見てちょっと挫折中。（あー･･･やっぱり英語は嫌いだ） コードと意味の分かる英単語を拾っていけば、おおよそは何とかなりそうなんだけど、"理解"まではとても長い道のりになりそうな予感ががががが。 &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　ずっと買うか買わないかを迷っていたわけなんだけど、mixiで「"名前付きテンプレート引数(Named Template Parameters)"面白ぇえええ！！」と書いたところ、他にもこんなのがあると紹介されたわけなんだが、 &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　　・template argumentの省略 [低学歴無能俸給生活者の欧州移住計画] &lt;BR&gt;　　&lt;A href="http://d.hatena.ne.jp/uskz/20060727/p1" target=blank&gt;http://d.hatena.ne.jp/uskz/20060727/p1&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　何をしているのかを理解しようとして見事に挫折。（ｗ &lt;BR&gt;&lt;BR&gt;　「これはメタプログラミングをちゃんと勉強しなきゃ無利だ」ということで、まず"C++ Template Metaprogramming"の購入を決めたわけなんだが、ついでに気になっていた書籍を一緒に注文。んで、届いて気が付いたわけだ。 &lt;BR&gt;&lt;BR&gt;　･･･"C++ Templates: The Complete Guide"を注文し忘れていた...orz &lt;BR&gt;&lt;BR&gt;　NTPの仕組みを自分なりに理解したとはいえ、ついでなんだから、解説されている書籍の内容を確認しようと思ったのにぃ･･･のにぃ...('A`) &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;・・・ &lt;BR&gt;&lt;BR&gt;　そして、微妙にAmazonさんがやってくれた。 &lt;BR&gt;&lt;BR&gt;　今回の発送予定が4/24～28とか提示されて「あー時間かかるなぁ」と油断していたら、注文したその日に発送してくれやがった。本当なら嬉しい誤算なのだが、届いた日はちょうど、わんくま東京勉強会の最中さ。そして次の日は（結局）死んでいたわけなのさ。 &lt;BR&gt;&lt;BR&gt;　どうもその間、携帯電話が運送会社から頻繁にかかっていたみたいなんだが、不在通知に気が付かなかった上に、メールをチェックしていなかったので、荷物だと思わずに知らない電話番号だったので無視状態。 &lt;BR&gt;&lt;BR&gt;　そのためか、それ以後は電話されなくなっちゃった...(&amp;#180;・ω・`) &lt;BR&gt;&lt;BR&gt;　電話が鳴ったら大家に預けてもらうように（普段は荷物を大家に頼んでいます）伝えようと思っていたので、その後の不在通知を放置していたら、気が付けば"長期不在"扱いにされちゃってたのさ... ネット注文は本当に楽なんだけど、宅配BOXとかないと、こういう荷物の受け渡しが微妙に不便やね。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/72170.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の</dc:creator><title>オブジェクト指向について</title><link>http://blogs.wankuma.com/e3475/archive/2006/11/17/45797.aspx</link><pubDate>Fri, 17 Nov 2006 02:21:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2006/11/17/45797.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/45797.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2006/11/17/45797.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/45797.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/45797.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;&lt;A href="http://blogs.wankuma.com/episteme/archive/2006/11/16/45695.aspx"&gt;余韻に浸ってみたりする&lt;/A&gt; &lt;BR&gt;&lt;A href="http://blogs.wankuma.com/tocchann/archive/2006/11/16/45724.aspx"&gt;MSC後の懇親会で...&lt;/A&gt; &lt;BR&gt;&lt;A href="http://blogs.wankuma.com/hirom/archive/2006/11/16/45756.aspx"&gt;俺流オブジェクト指向について・・・。&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;　以上のエントリを見て思ったこと。 &lt;BR&gt;&lt;BR&gt;　ただし私の場合、開発現場がCでゴリゴリと書くことを強制させられている関係上、どうもオブジェクト指向の恩恵に当たれない(いや、Cでもやれば出来るんだけど)んで、あんまり真面目に勉強したことはないんで、微妙に焦点があってないかもしれない。 &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　最近、C++/CLIを勉強して思ったんだけど、value型やref型のような明示的にオブジェクトの用途を切り分けた命令文を見て、今までモヤモヤと消化不良を起こしていた思考に何となく説明がついたような気がした。 &lt;BR&gt;&lt;BR&gt;　ようは「情報」と「処理」を一つの言葉で括ろうとしたから、いらん混乱が発生したんじゃないかと。（微妙に言葉の選択が間違っているような気がする･･･つか、この辺はとっちゃんの「二面性」の話かしら？） &lt;BR&gt;&lt;BR&gt;# この辺、趣味でブチブチと書いている時、 &lt;BR&gt;# ニュアンスで前者を"struct"、後者を"class"で宣言していたんだが &lt;BR&gt;# C++/CLIで書く場合、もうちょっときちんと考えなきゃと反省したわけで（ぉ &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　何にせよ、理解できていない部分の方が多いので勉強しなきゃだーね。 &lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/45797.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>恣意の</dc:creator><title>VC++2005：拡張メタファイル作成について (2)</title><link>http://blogs.wankuma.com/e3475/archive/2006/11/10/44268.aspx</link><pubDate>Fri, 10 Nov 2006 00:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/e3475/archive/2006/11/10/44268.aspx</guid><wfw:comment>http://blogs.wankuma.com/e3475/comments/44268.aspx</wfw:comment><comments>http://blogs.wankuma.com/e3475/archive/2006/11/10/44268.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blogs.wankuma.com/e3475/comments/commentRss/44268.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/e3475/services/trackbacks/44268.aspx</trackback:ping><description>&lt;P&gt;&lt;BR&gt;　あー、色々弄ってようやく分かった。 &lt;BR&gt;　つーか、Win32APIってば普通に呼べるのね。 &lt;BR&gt;&lt;SPAN style="FONT-SIZE: 80%"&gt;&lt;BR&gt;# いや、windows.h をincludeすれば呼べるんだけど &lt;BR&gt;# 混ざったコードは見ていて気持ち悪いねん... &lt;BR&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;　つことで、VC++2005で拡張メタファイルを作成するための一番簡単な手順が以下ってことで良いのかしら。 &lt;/P&gt;
&lt;BLOCKQUOTE class=code&gt;
&lt;H5 id=title&gt;　VC++2005実装&lt;/H5&gt;&lt;PRE style="FONT-SIZE: 10px"&gt;#include "stdafx.h"

using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
using namespace System::Runtime::InteropServices;

[DllImport("user32.dll")] extern IntPtr GetDC(IntPtr);
[DllImport("user32.dll")] extern Int32  ReleaseDC(IntPtr, IntPtr);

int main(array&lt;?XML:NAMESPACE PREFIX = System /&gt;&lt;System::String ^&gt; ^args)
{
    &lt;SPAN class=comment&gt;// Create instance&lt;/SPAN&gt;
    IntPtr    hDC = GetDC(IntPtr::Zero);
    Metafile^ mf  = gcnew Metafile("sample.emf", hDC);
    ReleaseDC(IntPtr::Zero, hDC);
    &lt;SPAN class=comment&gt;// Drawing in metafile&lt;/SPAN&gt;
    Graphics^ gm = Graphics::FromImage(mf);
    gm-&amp;gt;DrawLine(gcnew Pen(Color::Red,   3), 0, 600, 600,   0);
    gm-&amp;gt;DrawLine(gcnew Pen(Color::Blue,  2), 0, 300, 600, 300);
    gm-&amp;gt;DrawLine(gcnew Pen(Color::Green, 1), 0,   0, 600, 600);
    gm-&amp;gt;DrawLine(gcnew Pen(Color::Black, 1), 10,  0,  10, 600);
    delete gm;
    return 0;
}
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 80%"&gt;&lt;BR&gt;# 文字小っさ！！ &lt;BR&gt;# つかこのスタイルだとコード書けねぇな(&amp;#180;・ω・`) &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;　前回のコードにおいて何が駄目だったかというと、Graphicsを明示的にdeleteしてなかったのが原因だったみたい。こいつの開放までGCにまかせちゃうとMetafileの開放との順番で鼻から悪魔でも出ていたみたい。 &lt;BR&gt;&lt;BR&gt;　「GCがあるー」とかいって、後始末をサボったのが大失敗ってか。 &lt;BR&gt;　当たり前なんだけど、やることやんないと駄目なのね。 &lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　さて、完全に目的(C++/CLIの勉強)から外れちゃったんだけど、何か変な方向で勉強できたような・・・何故か途中、気が付いたらC#で実装してたし（ぇ &lt;BR&gt;&lt;BR&gt;　んま、順繰りと･･･「お作法」辺りから確認していきますか。 &lt;/P&gt;&lt;/System::String&gt;&lt;img src ="http://blogs.wankuma.com/e3475/aggbug/44268.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>