2009-01-01から1年間の記事一覧
そのまま書くと分かりにくすぎるのでperlで。 $zero="[0369CFcf]"; $one="[147ADad]"; $two="[258BEbe]"; /^(?:$zero|$one(?:$zero|(?:$one$zero*$two))*(?:$two|$one$zero*$one)|$two(?:$zero|(?:$two$zero*$one))*(?:$one|$two$zero*$two))+$/要は16進表記…
普通プログラムで最初に身に付けることは、コンピュータにいかにして仕事させるかっていうことだと思うけど、Cとか初めてプログラムに接触する人にとっては謎の呪文が多いし、そういう謎な部分は本題ではないのにやたらと気になって大変よろしくない。構造化…
1+2=3をネタにいろんなパラダイムを見てみる的な内容で、面白そうと思ってたあたりを小さく一巡りできて面白かった。 冒頭では予備知識なしでも読めるって書いてあったけど、割といったような…あと変換過程とかすごい省略しまくってる感じがする。こういう本…
一個前のを書きながら思ったんだけど、実はかなり面白くないか? OOPが難しいのは、数多の実物より先に抽象概念を定義する必要があって、そこで目的に合わない定義の仕方をしてしまうと、ドカーン!ってなる (ambiguous representation) ので、慎重に定義し…
派生クラスの合併集合のような基底クラスを作るための構文を用意すればいいんじゃないか?たとえばJavaで: ambiguous class Animal {} // AnimalにはNotImplementExceptionを投げるだけのrun, fly, swimが暗黙に実装される class Dog extends Animal { publ…
抽象的な言葉は、いろんなところで使えるから便利だけど意味多すぎるなぁとか思ってたけど、よく考えたら抽象的というのは、表わしたいことの本質以外をそぎ落としたということなんだから、そういう言葉っていうのはむしろ混じりけがない言葉で、混じりけが…
私は「パンツじゃないから恥ずかしくないもん」というのを「「パンツではない」ならば「恥ずかしくない」」という命題だと捉えて色々考えてみたのだが、これだと結局なにが言えるのか分からなかった。 そこでふと思い出したのが、modus ponensのことである。…
関数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 あまりにもヒットしすぎて自分の発言引用してしまった…
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++TT読み終わった。 現代的なC++で使われている技巧が一通り入ってて、なんというかこうtemplateの面白い部分ばっかり集めた収まりのいい本だなぁと思った。 個人的にはET解説ついでにラムダ式とかbindとか欲しかったとか思うけど、それやるとおそらく分量…
がんばった。 \u, \U, \o, \xのあたりはあまり気にしない。あと文字コードも知らない。 $esc = '\\\\.'; $cChar = "(?:[^'\\\\\\n]|$esc)"; $cPrefix = '[uUL]'; $ch = "(?:$cPrefix?'$cChar+')"; $sChar = qq{(?:[^"\\\\\\n]|$esc)}; $strPre = '(?:[uUL]|u…
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…
気付いたのが当日だた。塗るのはおいおい。
テンプレートを使うとコードが読みにくい 多分vector<int>を読みにくいと言う人はいないと思う。むしろ、テンプレートの存在を知っているならば、「int用のvectorだ」と素直に理解できるぐらい簡単。読みにくいのは、例えば(次のコードは例なので、意味は分から</int>…
メモ。 何ヶ月か前に新しいgcc(4.2か4.3ぐらい)で突然ビルドできなくなったんだか、起動できない物体ができたんだか というわけでgcc3.4でやってた またビルドに失敗するようになった 今度は4.3だとできた おしまい。
私の知人へのハブとして、発売しました >C++テンプレートテクニック で、買ったはいいがフォトンブラスターとかミサイルランチャー使い込んでたのであまり読み進んでない。今3章読み始めた。もうこのへん読み飛ばしてもいいかな。
直前のエントリーのコードは、{f, a, b, ...}というtupleを受け取って、a, b, ...にfを適用して返すという関数で、fやaやbがtupleであれば、それらに対しても再帰的にapplyを適用した上でf(もしくはapply(f))を適用する。{{a, b, c}, d, {e, f, g} } なら …
http://twitter.com/Cryolite/status/1571598248 のやつ 一部抜けている定義とかあるけど気にしない。あと完全にコピーで作ってるけどこれも気にしない。 template<typename T> struct sizeof_; template<typename ...T, template<typename ...> class TT> struct sizeof_<TT<T...> > { constexpr size_t const value = s</tt<t...></typename></typename>…
BALDRSKY。買ってからはそれぐらい経つけど、プレイ始めたのがいつだったのか忘れた。まぁいいや。とりあえず寝る間も惜しんでやってた。惜しんだ分は会社 で 休んでいるので健康上は問題ない。 で、既にTwitterにはpostしてるけど、菜ノ葉さんが編入試験の…
もうだいぶ前だが、http://www.kmonos.net/wlog/88.html とか http://d.hatena.ne.jp/gnarl/20071216/1197774166 とか見て、エラーの処理を呼び出し側で柔軟にできるようにならないかと思って書いた(んだと思う)。 error.hpp#if !defined ERROR_HPP_INCLDU…
http://d.hatena.ne.jp/faith_and_brave/20090408/1239205628 かの有名な巨匠二人の手による一品ということなので、私の知り合いでC++使ってるのにtemplate禁止とかC++の意味がねこそぎ奪われているような環境に浸っている諸兄は、これを機会にtemplateとの…
あれ これ それ どれ 足元に詰まれた過去(積んである本)よりも、前だけ見つめて生きていこうと思います。
と、Twitterでもらそうと思ったけど、一つの記事ぐらいにはなるんじゃないかと思ったので、ぽすとしないでこっちに書いてみる。そりゃ確かに学校には先生がいたけど、学生時代に授業でプログラミングを教えてもらった誰の「自分にとってのプログラム(もしく…
ほかのメジャーなブラウザと比べて、 早い User StyleSheet使えなくて悲しい すごい変な位置に実行バイナリがある Feed見れなくてびっくりした 左上ダブルクリックして窓閉じられなくて不便 FeedはReaderで読めばいいとして、左上ダブルクリックできないなん…
basic_static_string 的なものを作って、template constexpr basic_static_string operator""_ss() 的なuser-defined literalがあればいいんじゃないかとか Boost.Protoでnewtypeを書きなおしてみるとか、lambda作ってみるとか esolang処理系でっちあげるとか
struct Foo { Foo() = default; Foo(Foo const & foo) = default; Foo(Foo && foo) {} }; struct Bar { Foo const foo; Bar() = default; Bar(Bar const & other) = default; Bar(Bar && other) : foo(std::move(other.foo)) {} // foo の初期化にはコピーコ…
訳が分からなくなってきたのでまとめてみる。以下、登場する識別子は、特に明記されていない限りnewtype名前空間中に定義されている。 全体的にETで実装。 2項演算のとき、各項の要素の型は違っていてもよい。detail::binary_promoteメタ関数で適当に型計算…
そろそろ日記書くべきだということで、はるか一年ぐらい前に書いたジオメトリ計算用ライブラリをちょこっと手直しして載せてみる。 もともと行き当たりばったりに書いていたものなので、とってもカオス。特に同次座標辺りはすごい適当な扱い。ほとんど計算に…
http://www.eonet.ne.jp/~fuutapapa/boyscout/Rope/rope.htm えび結びが一番萌える。長い紐を見つけるとやりたくなる。垣根は忘れた。でもあれ結んでるっていうより適当に絡ませているようにしか思えない。張り綱は何種類かあったような気がする。どうしても…