読者です 読者をやめる 読者になる 読者になる

C++

C 言語にポインタがある理由は省メモリ化・高速化・開発作業の省力化です

C++

前回の記事『プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ』でポインタの教え方を書きました。ソレに対して「そもそもどうしてポインタっていう仕組みがあるの?」という質問をもらったので、つらつらと書こ…

プログラム初心者にC言語のポインタを不本意ながら教える羽目になったなら、こう教えると良いよ

C++

僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にも…

GO FOR IT

C++

Sony サイト内の GO FOR IT というページにプログラムの問題が出てる、というのを @reito_k の呟きで知りました。で、それを寝る前にごにょごにょと書いてました。gist:「Sony Japan - GO FOR IT -」 (使ってる数学が簡単すぎるので、問題を読み間違えてる…

C++11 とオブジェクト指向

これは C++11 Advent Calendar 2011 の 3 日目の記事です。*1 C++03 から C++11 になったことで大小さまざまな言語仕様拡張・変更がありましたが、それらが C++ におけるオブジェクト指向プログラミングをどう変えてゆくのか、現段階で思うところを書こうと…

C++ で eval()

C++

さっそくですが TL でこんなのを目にしました。 誰かC++にeval入れてください2011-09-26 10:27:40 via Tween おーけい、やりましょう。

Boost.statechart / Boost.msm を実際に使うとハマるかもしれないポイントなど。

C++

ライブラリをアピールするとき、メリットを強調するもんです。しかしよく使われるライブラリは、その欠点や使いにくさが語られます。そうしたネガティブ面をも周知されることこそが、"使われている" という実績なのだと思います。 なので、Boost.勉強会で紹…

Boost. 勉強会 #5 に参加してきた。

まず最初に謝らねばなりません。 以前書いた Boost.勉強会 #3 の記事 ですが、 タイトルが「Boost 勉強会 #3 に参加してきた。」 になっていました。 正しくは「Boost. 勉強会 #3 に参加してきた。」 となっているべきであり、「.」の存在を軽視しておりまし…

TL 眺めていて命名について思ったコトなど。

TL で興味深い話がありました。 boostはねーっていうかstdもそうなんだけど関数名が分かりにくい いろいろできるのはわかるんだけどC#とかJavaが畑の人間には関数名短くするとかそういう文化がないのですよ ポインタptrいがいよーわからんのだわー2011-05-13…

C++er 達の post を集めてみました。

C++

僕の TL には C++er がたくさんいます。僕は脳ミソ沸いてるのでこんな感じですが。 @PG_kura C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁはぁ C++ はぁ…

range-based for が気になる。

C++

■ 概要 C++0x の range-based for について議論が行われているらしい。↓この記事にある全 5 案のどれが良いのか...。 『range-based forに対する意見求む』 本の虫 ざっとまとめるとこんな感じ。 ・案1 ADL のみ ・案2 range_traits の特殊化 のみ ・案3 …

継承され得るクラスの作法の話など。

C++

twitter にて @fadis_ センセのこの呟き。 C++03ではあらゆるクラスは継承される恐れがあるからデストラクタに必ずvirtualを付けるのはマナー。C++0xなら継承されたくないクラスにはfinalを付ければいい。2011-02-08 10:41:26 via YoruFukurouそれに対する @…

C++0x が底辺 C++er にもたらすメリット

C++

開発環境が C++ から C++0x に移行することで多くの利益がありますよね。そういうものについて C++er が多くの記事を書いてくれたりしているわけです。 しかしエキスパートの方々の鋭い記事を精査する前にそもそも現行の C++ だってろくに使ってねーよ、的な…

2011年最初の失態

ちょっと浅はかだったと後悔している。 年始、Twitter でこんなんを post したんだが。 A happy = new Year;2011-01-01 15:49:42 via Twitter for iPhone あと 1 分考えてからつぶやけばもうちょっとひねれた。 こんなんを ideone に貼ってつぶやくべきだっ…

Boost.statechart まとめ

C++

これまで書いてきた Boost.statechart のまとめです。まずこれまで書いたのは以下の 6 エントリです。本記事を入れて全 7 エントリとなります。Boost.statechart 事始め Boost.statechart でイベントを受け取る Boost.statechart で状態のネストを定義する。…

Boost.statechart で CSV を読む。

C++

CodeZine に『StateパターンでCSVを読む』という記事があります。この記事は C++ で State パターンの利用例として CSV ファイルを読んで HTML に変換するプログラムの解説をしています。ちょうど良い例題だったので同じモノを Boost.statechart を使って実…

Boost.statechart で複数状態を持つマシンを実装する。

C++

Boost.statechart で複数の状態を持つマシンを実装したコードを載せるとか載せないとか言ってましたが、風邪でダウンしてあまりにも暇になったので載せることにします。 こんなんですね。 状態遷移は全部書くと面倒なので、オレンジの矢印のみを実装します。…

Boost.statechart で現在の状態を確認する。

C++

Boost.statechart の state_machine には、現在の状態を確認する方法が用意されています。当たり前ですね。無かったらキレますよね。 説明を簡単にするためにこんな例でコードに落としてみます。 シンプルですね。遷移すらしない状態マシンです。parent 状態…

Boost.statechart で状態のネストを定義する。

C++

Boost.statechart では、ネストした状態の定義が可能です。例としてこんなんを考えてみます。 状態マシンは power_on と power_off の 2 状態を持ちます。power_on のときはその内側でさらに bit_0 と bit_1 の 2 状態を持ちます。それぞれ push_power_butto…

Boost.statechart でイベントを受け取る。

C++

Boost.statechart でイベントに応じて何かするプログラムを実装してみます。通った車の台数を数えるカウンタです。 カウンタは go_through_car イベントを受け取ると車の台数をインクリメントします。但しこのカウンタは enable, disable の 2 状態を持ち、d…

Boost.statechart 事始め

C++

状態遷移マシンを表現するライブラリとして Boost.statechart ってのがあります。 その紹介。例えばですが、こんなんがあったとします。 greeting 状態から bye 状態への遷移が say_good_bye によってトリガされる感じですね。で、こいつを boost::statechar…

Boost.FSM のドキュメント読んだ。

C++

ざっとだけど、読んだ。これをもーちょっと勉強したら、Boost 勉強会(名古屋)で喋るネタにできるかも。僕はかねがね "現代の汎用プログラミング言語に「状態の明記」を付け足せるといいだろなー" と思っている。 Boost.FSM は(言語仕様の拡張ではないので)直…

C++ で継続

C++

「C++ で継続を使いたい」と思い、悪戦苦闘した結果を書いておきます。通常の関数呼び出しでは return で呼び出し元に戻るわけですが、 "この記事でいう"「継続」は、呼び出し元に戻らずに次の関数へ飛ぶようなものです。 (突っ込みどころはあるでしょうがそ…