<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>ラッキー・ルチアーノなう</title>
<link>https://ameblo.jp/megane-now/</link>
<atom:link href="https://rssblog.ameba.jp/megane-now/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>コンタクトレンズとレーシックによって、未曾有の危機に襲われたメガネの世界で、一人の勇者が立ち上がった。メガネを愛する一人の男の愛と友情の物語。ではなく、コーサ・ノストラの歴史について語るブログ。でもない。</description>
<language>ja</language>
<item>
<title>0x</title>
<description>
<![CDATA[ ゼロエックスって書くと、<br>新しいガンダムかと思いそうですが、C++ 0xの話です。<br><br>またプログラム知らない人にはごめんなさいな記事だよ！<br><br><br>C++ 0xにて色々な強化がされました。<br>コンセプト、ラムダ式、constexprなど<br>大きなものから小さなものまで。<br>コンセプトさんは死んじゃったけどね・・・。<br><br>で、その中の一つに「右辺値参照」があります。<br><br><br>んで、この「右辺値参照」の説明をしようと思ったんですが、<br>左辺値と右辺値ってなーに？ってところから<br>まともに詳しく書いていくとあまりに長く難解になりそうなんで<br>語弊を含む部分もあるかもしれませんが、省略して書いていきます。<br><br><br>左辺値と右辺値の違いは、式の終了後も<br>生存するオブジェクトかどうかです。<br>（左辺値＝非一時オブジェクト、右辺値＝一時オブジェクト）<br><br>int x = 1;<br><br>という式が存在した場合、<br>xは式の終了後も存続するオブジェクトですが、<br>右側の1は、式の終了時に破棄される一時オブジェクトです。<br><br>その為、上記の式の場合、xが左辺値、1が右辺値になります。<br><br><br>つまり、左辺値はいつでも見れる保存したエロ画像で、<br>右辺値は街中で見かけた偶然のパンチラみたいなものです。<br><br>int x = 1;<br>という式は偶然のパンチラを、咄嗟にケータイで撮って、<br>xというエロ画像として保存するという式なのです。<br><br>まったく女性の敵のような式ですね！<br>紳士的な俺は怒りを隠せません！ﾋﾞｷﾋﾞｷ<br><br><br>さて、非一時オブジェクトと一時オブジェクトに関して<br>次のような違いがあります。<br><br>void megane(int&amp; aInt);<br><br>と言ったように、非constの参照を受け取るメソッドに<br>・非一時オブジェクトは渡すことができる<br>・一時オブジェクトは渡すことができない<br>というルールがあるのです。<br><br>エロ画像を他人に渡すことはできても、パンチラの記憶は<br>他人に渡せないのと一緒です。<br><br><br>で、上記のルールによって、<br><br>megane(1);<br><br>というような式は書けず、<br><br>int x = 1;　①<br>megane(x);<br><br>というような式を書く必要が出てきます。<br>折角コピーのオーバーヘッドをなくしたくて、参照にしても<br>実質一度ローカル変数に取らなければいけないのであれば、<br>①の部分で余計なコピーが発生しているのです。<br><br><br>で、右辺値参照というのは、<br>そのコピーを減らそうぜというもの。<br><br>void megane(int&amp;&amp; aInt);<br><br>とした場合、<br><br>megane(1);<br><br>を行うことが可能であり、また引数は値渡しではないので<br>余計なコピーは発生しないというものです。<br><br>ここでは説明しませんが、右辺値参照後の定石となりそうな<br>むーぶコンストラクタを実装することで、またさらに右辺値参照が<br>強力になったりします。<br><br>それはまた別の機会に。<br><br>※const参照ではなく、右辺値参照による利点は<br>　まさにムーブコンストラクタで出てくるのですが、<br>　高校の時の彼女が巨乳だったことを思い出したので、<br>　それどころではなくなりました。
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10707277457.html</link>
<pubDate>Sun, 14 Nov 2010 21:45:16 +0900</pubDate>
</item>
<item>
<title>解析のしやすさ</title>
<description>
<![CDATA[ お久しぶりです。五日ぶりに家に帰れたぞ！<br>ということで、プログラミングの話。<br>プログラミングの知識がないかたはごめんなさい。<br><br>で、プログラムというのは人から人に<br>渡っていく機会の多いものです。<br><br>少なくとも、一つのプログラムを<br>最後まで一人だけしか触らないということは、<br>お仕事においては、多くありません。多分ね。<br><br>その為、可読性の高いコードを書く技術が<br>必要になってきます。<br><br>今日はその中の一つのお話で、<br>読むのを面倒くさくするより、書くのを面倒くさくしようぜ。<br>というお話。<br>※個人的な好みも含んでいます。<br><br><br><br>例えばの話、配列のような動きをするクラスを作ります。<br>Ｃ＋＋で書いてみましょう。<br>テンプレートの勉強ではないので、unsigned char型の<br>要素数固定配列とします。<br><br><font color="#FA8072">class MeganeArray<br>{<br>private:<br>　　unsigned char mBody[256];<br>　　int mLength;<br><br>public:<br>　　int Append(const MeganeArray&amp; iSrc);<br>　　MeganeArray&amp; operator+(const MeganeArray&amp; iSrc); <br>};</font><br><br>とりあえず、コンストラクタとかoperator[]は省略して、<br>お話に必要な部分だけ記載。<br>上記のようなクラスがあったとしましょう。<br><br>で、ここで気になるのがAppendとoperator+です。<br>説明するまでも無いとは思いますが、<br><br><font color="#FA8072">int Append(const MeganeArray&amp; iSrc)<br>　引数としてMeganeArrayの参照を受け取り、<br>　現在のmBodyのmLength以降の部分に<br>　引数の内容を追加するメソッド。<br>　戻り値はエラーコード。<br><br>MeganeArray&amp; operator+(const MeganeArray&amp; iSrc); <br>　引数としてMeganeArrayの参照を受け取り、<br>　現在のmBodyのmLength以降の部分に<br>　引数の内容を追加するメソッド。<br>　戻り値は自身の参照。</font><br><br>というメソッドとして定義しています。<br>ぶっちゃけ上記のようなoperator+は、<br>「要素数を超えた量を追加しようとする可能性が<br>　operator+のコール以前に潰されている必要性がある」<br>とか色々問題がありますが、<br>実際に書く人がいるのでこれでいきます。<br><br><br><br>でですね。<br>この定義をすると、確かに書きやすいです。<br>Append、operator+、どちらも有用に使える場面があります。<br>（ケツが切れても問題ない配列の追加なら、<br>　戻り値でエラーコードを貰ってのエラー処理は、<br>　無視することも可能は可能）<br><br>ただ、ぶっちゃけるとやってることは同じなんです。<br>自身のケツに、もらったものを付け加えてるだけです。アッー！<br><br>なら、Appendだけで良くないだろうかと思います。<br><br>同じことをやっていて、引数も同じなのに、<br>ただ単に<br><br>MeganeArray array;<br>if (0 == array.Append(arraySrc1)) { return FALSE; }<br>if (0 == array.Append(arraySrc2)) { return FALSE; }<br><br>みたいに書くのが面倒くさくて、<br><br>MeganeArray array;<br>array = arraySrc1 + arraySrc2;<br><br>みたいな書き方をしたいから、operator+やoperator=を<br>オーバーロードするのは、一見、可読性が高まるように見えます。<br><br>ですが、実際は<br>・operator+はAppendに失敗した場合、どういった挙動をするのか。<br>・operator+で追加している場面は、本当に要素数内で収まる<br>　追加であるのか。<br>　もし要素を超える場合、超えても本当に問題がないのか。<br>などの部分がややこしくなってるだけな気がします。<br><br>特にoperator=なんかは良くオーバーロードされている気がしますが、<br>・operator=はコピーしているのかアドレスだけ受け取っているのか。<br>という部分を理解せずに使えば、実行時エラーをぽこじゃかと引き起こします。<br><br>結局、あとから来た人の読まなきゃいけない部分が増えてるだけです。<br><br><br><br>また、<br>「Append、operator+、どちらも有用に使える場面があります」<br>と書きましたが、どういう場面で有用かを理解せずに<br>メソッドを使用するプログラマも、残念ながら少なくありません。<br><br>直感的に使用できるメソッドを用意した場合、<br>直感だけで使用される危険性もはらんでいます。<br><br><br><br>C++はオペレータのオーバーロードを使うことによって、<br>直感的なコードを書けるようになっています。<br>ただ、読む人はやっぱりきちんと理解しないといけない部分です。<br><br>ユーティリティとしては利便性を求めるのも大事ですが、<br>あとから来た人はそのクラスがどういう設計で作られているかを<br>知ることからはじめなければいけません。<br><br><br>知っている前提での利便性は、コードの毒になりかねないのでは。<br>と個人的には思うのでした。
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10706342573.html</link>
<pubDate>Sat, 13 Nov 2010 22:17:09 +0900</pubDate>
</item>
<item>
<title>夢日記</title>
<description>
<![CDATA[ 河童に<br>「おまえ、どこ中だよ？」<br>って絡まれる夢を見ました。<br><br>お前こそ、どこ中だよ…。
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10700648258.html</link>
<pubDate>Mon, 08 Nov 2010 06:39:00 +0900</pubDate>
</item>
<item>
<title>帰宅防衛前線</title>
<description>
<![CDATA[ おとといの話。<br><br>俺「おつかれーっす」<br><br>副社長「meganeさんが逃げるぞ！」<br>上長「meganeさん、風呂いきますか」<br><br>俺「今日は帰るって言ってんじゃないですかー！」<br><br>そんなこんなで横浜からの電車がなくなってました。<br><br><br><br>タ、タクシーの領収書もらい忘れたんですけどー！！
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10700235032.html</link>
<pubDate>Sun, 07 Nov 2010 20:39:33 +0900</pubDate>
</item>
<item>
<title>マイノリティリポート</title>
<description>
<![CDATA[ 戦い続けなければいけない時があります。<br><br>民主主義の中、<br>自分に同調してくれる人が一人もいなくても、<br>どんなに孤独を感じたとしても、<br>膝をついてはいけない時があります。<br><br><br>社内多数派「女性にフンドシはナイ」<br>社内少数派「女性にフンドシはアリ」<br><br><br>俺はたった一人でも戦い続けます！<br>数の暴力には、絶対に負けませんからね！！！
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10695913392.html</link>
<pubDate>Wed, 03 Nov 2010 14:49:25 +0900</pubDate>
</item>
<item>
<title>お引越し</title>
<description>
<![CDATA[ 引越と言えば、<br>「キリンさんが好きです。でもゾウさんはもーっと好きです」<br>の松本引越センターなんかが有名ですよね。<br><br>「じゃあ、オジチャンのゾウさんを…」とか考えたひとは<br>帰っていいです。<br><br><br>で、職場が都内なんで、少し通勤の便が悪く、<br>終電で帰ると深夜一時とかになっちゃうので<br>引越を考えています。<br><br>新宿駅近くに引っ越そうと思うのですが、<br>どこか家賃安めな区域とかないですかねー。
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10695530874.html</link>
<pubDate>Wed, 03 Nov 2010 01:33:13 +0900</pubDate>
</item>
<item>
<title>デオキシリボ核酸</title>
<description>
<![CDATA[ 今日は真面目な話をしますよ！<br>なんだこのブログ！<br>馬鹿な話ばっかりじゃないか！<br><br>今日こそは真面目な話をしますからね！<br><br><br><br>おそらく皆さんもご存知でしょうが、DNAは<br>シトシンなど四種の塩基とデオキシリボース、<br>リン酸から構成されています。<br><br>大部分の生物の遺伝情報はDNAが担っており、<br>すなわち我々ヒトも例外ではなく、<br>き
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10692925556.html</link>
<pubDate>Sun, 31 Oct 2010 14:47:39 +0900</pubDate>
</item>
<item>
<title>フィッシャーマンズ・ハイ</title>
<description>
<![CDATA[ 最近、ピグ釣りに地味にはまっています。<br><br>で、今日こそは石狩川初級コンプするぞと息巻いて、<br>釣ってきました！<br><br><br><br>今日の主な釣果<br><br><a href="http://stat.ameba.jp/user_images/20101030/12/megane-now/9e/ba/p/o0270017010829574383.png"><img src="https://stat.ameba.jp/user_images/20101030/12/megane-now/9e/ba/p/t02200139_0270017010829574383.png" alt="$ラッキー・ルチアーノなう-未設定" width="220" height="139" border="0"></a><br><br><a href="http://stat.ameba.jp/user_images/20101030/13/megane-now/ee/77/p/o0270017010829632009.png"><img src="https://stat.ameba.jp/user_images/20101030/13/megane-now/ee/77/p/t02200139_0270017010829632009.png" alt="$ラッキー・ルチアーノなう-未設定" width="220" height="139" border="0"></a><br><br><a href="http://ameblo.jp/conan-the-barbarian/"><img src="https://stat.ameba.jp/user_images/20101030/23/megane-now/d2/c3/p/t02200139_0270017010830788019.png" alt="$ラッキー・ルチアーノなう-蛮人さん" width="220" height="139" border="0"></a><br><br><a href="http://stat.ameba.jp/user_images/20101030/13/megane-now/b8/0d/p/o0270017010829634914.png"><img src="https://stat.ameba.jp/user_images/20101030/13/megane-now/b8/0d/p/t02200139_0270017010829634914.png" alt="$ラッキー・ルチアーノなう-未設定" width="220" height="139" border="0"></a><br><br><br><br>やっと、ぬしが食いついてくれてコンプリートできました！<br>次は、石狩川中級に挑戦してきます！
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10692454191.html</link>
<pubDate>Sat, 30 Oct 2010 23:36:44 +0900</pubDate>
</item>
<item>
<title>SIMPLE2000シリーズ　THE生活費</title>
<description>
<![CDATA[ 　　 　人<br>　　 （＿_）　　　 ﾒｼｲｺｳｽﾞｰ<br>　　（＿＿）　　　　　(´⌒(´⌒<br>　　(・∀・ )　　　　(´⌒(´≡<br> 　 O┬O ノ｀　　≡≡≡(´⌒;;;<br>　 ◎┴し-◎　(´⌒(´⌒;;<br><br><br>会社のスカイプに上のAAを貼り付けたら、<br>「meganeさんの昇給推してるのに、やめようかな」<br>って上長に言われました。<br><br><br>えっ？
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10691435905.html</link>
<pubDate>Fri, 29 Oct 2010 23:04:15 +0900</pubDate>
</item>
<item>
<title>人生の哲学</title>
<description>
<![CDATA[ 仕事に全力を尽くしたあとに<br>自分へのご褒美としてエッチなDVDを購入することは<br>恥ずべきことではない<br>　　　　　　　　　　　　　　　　　　　――――――ニーチェ
]]>
</description>
<link>https://ameblo.jp/megane-now/entry-10689749744.html</link>
<pubDate>Thu, 28 Oct 2010 05:16:36 +0900</pubDate>
</item>
</channel>
</rss>
