2009-05-01から1ヶ月間の記事一覧

あれ、

一個前のを書きながら思ったんだけど、実はかなり面白くないか? OOPが難しいのは、数多の実物より先に抽象概念を定義する必要があって、そこで目的に合わない定義の仕方をしてしまうと、ドカーン!ってなる (ambiguous representation) ので、慎重に定義し…

そうだ、

派生クラスの合併集合のような基底クラスを作るための構文を用意すればいいんじゃないか?たとえばJavaで: ambiguous class Animal {} // AnimalにはNotImplementExceptionを投げるだけのrun, fly, swimが暗黙に実装される class Dog extends Animal { publ…

abstractもしくはambiguous→どっちでもいいや

抽象的な言葉は、いろんなところで使えるから便利だけど意味多すぎるなぁとか思ってたけど、よく考えたら抽象的というのは、表わしたいことの本質以外をそぎ落としたということなんだから、そういう言葉っていうのはむしろ混じりけがない言葉で、混じりけが…

いいえ、パンツです

私は「パンツじゃないから恥ずかしくないもん」というのを「「パンツではない」ならば「恥ずかしくない」」という命題だと捉えて色々考えてみたのだが、これだと結局なにが言えるのか分からなかった。 そこでふと思い出したのが、modus ponensのことである。…

プリプロセッサで指数爆発させる

C++

関数fと引数vのタプルと、整数nを渡すとvにfを2^n回適用する関数マクロを作った #define PP_TUPLE_ELEM_0(a, b) a #define PP_TUPLE_ELEM_1(a, b) b #define PP_TUPLE_ELEM(n, tup) PP_TUPLE_ELEM_I(n, tup) #define PP_TUPLE_ELEM_I(n, tup) PP_TUPLE_ELEM_…

餃子の王将の文句で…

重複一日7000箇所、コピペ一日5万回、変数3000個、ソース一日100万行、コードは万里を越える… https://twitter.com/DecimalBloat/status/1793272918 あまりにもヒットしすぎて自分の発言引用してしまった…

超簡単scope_guard

struct scope_guard { std::function<void()> f_; bool dismiss_ = false; template<typename F> scope_guard(F && f) : f_(std::forward<F>(f)) {} scope_guard() = delete; scope_guard(scope_guard const &) = delete; ~scope_guard() { if (!dismiss_) { f_(); } } void dismiss</f></typename></void()>…

C++テンプレートテクニックの感想とか

C++TT読み終わった。 現代的なC++で使われている技巧が一通り入ってて、なんというかこうtemplateの面白い部分ばっかり集めた収まりのいい本だなぁと思った。 個人的にはET解説ついでにラムダ式とかbindとか欲しかったとか思うけど、それやるとおそらく分量…

C++0xの文字列にだいたいマッチする正規表現を書くなどしてみた

がんばった。 \u, \U, \o, \xのあたりはあまり気にしない。あと文字コードも知らない。 $esc = '\\\\.'; $cChar = "(?:[^'\\\\\\n]|$esc)"; $cPrefix = '[uUL]'; $ch = "(?:$cPrefix?'$cChar+')"; $sChar = qq{(?:[^"\\\\\\n]|$esc)}; $strPre = '(?:[uUL]|u…

今までどのくらいプログラミング言語を触ってきたか(3秒で飽きたものも含む)

http://d.hatena.ne.jp/oorexx/20090507/1241703786 http://d.hatena.ne.jp/faith_and_brave/20090508/1241747936まぁプログラミング言語とか言語以外もふくんでるけどね! 日本語 数式 英語 BASIC C Z80 asm CASL SQL C++(runtime) HTML CSS JavaScript Act…

5/1は小牧愛佳の誕生日だったということで

気付いたのが当日だた。塗るのはおいおい。

世間でのC++のテンプレートに対するバッシングと言い訳

C++

テンプレートを使うとコードが読みにくい 多分vector<int>を読みにくいと言う人はいないと思う。むしろ、テンプレートの存在を知っているならば、「int用のvectorだ」と素直に理解できるぐらい簡単。読みにくいのは、例えば(次のコードは例なので、意味は分から</int>…

ビルドできない→できた(←今ここ)

メモ。 何ヶ月か前に新しいgcc(4.2か4.3ぐらい)で突然ビルドできなくなったんだか、起動できない物体ができたんだか というわけでgcc3.4でやってた またビルドに失敗するようになった 今度は4.3だとできた おしまい。