が C++ のテンプレートの嵐より簡潔さに欠けると言うことはないと思います。 静的な型安全性が無いのは C++ 版に劣るところですが、id:wiseler さん的に Python や Lisp の例は OK らしいので、そこは最大の焦点でないととりあえず判断しました。さて、ところで、 public static void main( String[] arg ) throws Exception { // 引数で指定された匹数ネコとイヌが交互に並ぶ int n = Integer.parseInt(arg[0]); Obje...
要はxとyはコンストラクタ関数内のローカル変数なので、 コンストラクタのスコープ内でしか利用できない、ということですね。 C/C++などは、ローカル変数は実行がスコープから外れると破棄されてしまいますが、 ECMAScriptではその変数に対する参照が残っている間は実体が保持されますので、 getX() などからは何度でもx,yにアクセスできます。(詳しくは次回) しかしこれは、...
「こっちの値の方が大きければ」とか「データが0ならば」とかの場合は少し問題です。 前者については、とりあえず [ による0か否かの判定にもちこまなくてはならないので、 引き算のような処理をして 0 or not 0 に変形することが必要です。 +++++ # {0} = ? >+++< # {1} = ? >[ # while( {1} ) do <[->>+>+<<<]> # {2:3} = !{0} >>[-<<<+>>>]<< # {0} = !{3} >[[-]<...
C++関係の話に出てくる言葉で、「読んで字の如し」 とはいかない難解語の簡単な解説を並べてみました。Glossaryというより、 むしろ略語辞典になってしまいました。巷で見かけた単語を並べているだけなので、 実際の所ほとんど使われない略語もあったりするかもしれません。 ちゃんとした用語集は Bjarne Stroustrup's C++ Glossary などをご覧になることをオススメします。 用語集 ADL ...
『 C言語では低レベルすぎるが、C++は複雑すぎ、JavaはVMを必要とする、といったようなそれぞれの使いづらさに対して現実主義的な回答を模索した言語(byウィキペディア) 』
プログラミングに関する小ネタなどを、ここに集めてみました。 "Let's boost"、"D言語リファレンス日本語訳"、"いろんな言語"など。
中国語とか韓国語とか日本語とかを切り替えて入力できる「Global IME」 対応のための解説。要は既存のIME対応アプリの、TranslateMessage / DefWindowProc / ImmXXXXX API を全て ActiveIMM の対応するメソッドに置き換えればおっけー、ってことみたい。 Win2000以上ではこんな面倒な技術無しでも普通に多言語入力可能らしいですが…。 Uniscribe @ MSDN サロゲートペアとか文字の合成とか方向とかその...
Diffrentiable EXpression Templates - a Reusable Open Source Engine の略とのこと。こちらもETの汎用化。演算子で書いた式を、 template上でのツリーに展開する枠組みを提供してくれます。 コンパイル時に記号微分ができる、のが "Diffrentiable" の由来らしい。 Reflection for C++ リフレクション。 あるクラスのメソッド一覧を手に入れるとか、 クラス名からそのインスタンスを生成とか。結構無理がある...
更新滞っててすみません。Boost.Spiritで書かれたC/C++のプリプロセッサライブラリWaveのレビューが開始されてます。C99/C++98完全準拠を謳っています。あと、普通のシンプルな#includeとかは他のプリプロセッサと比べてまだ遅いけれど、Boost.PPをフルに使ったような複雑なコードの処理だと、速度低下がひどくない設計になっている分速いそうな。 ◆ : YARD : Yet Another Recursive Descent Parser f...
変数名としては、「大文字か_(アンダースコア)で始まるものだけ」 を使うことができます。小文字始まりはダメ。変数名 = 式.と書くことで、式の結果を変数に入れることができます。 ただし、「代入」と言うとやや語弊があるので注意。というのは、 一度変数へ値を束縛してしまったら、別の値を入れ直すことができません。 1> X = 20. 20 2> X = 10. ** exited: {{badmatch,10},[{erl_eval,...