閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

C++/CLI

for each

すげー怪っしい. #include <vector>int main() { std::vector<int> v; for (int i = 0; i < 10; i++) v.push_back(i); int sum = 0; for each (int x in v) sum += x; printf("sum=%d\n", sum); } http://homepage1.nifty.com/herumi/diary/0708.html なんだこれ、と思っ</int></vector>…

NUnit

基本的にいまのプロジェクトは GUI の絡んだコードばかり書いているのでユニットテストを行おうにも簡単にはいかず、結局ほとんど人力でやっているのですが、ちょっとした GUI の絡まないクラスを実装する事になって、ちょうどいいのでここだけ切り離して単…

type system unification

どうやら C# ではリテラルもオブジェクトになっているみたいですね。 C++/CLI でも一応そうなっているようです。 Console::WriteLine( (1).GetType()); // > System::Int32 Console::WriteLine( (1.23).GetType()); // > System::Double Console::WriteLine(…

Ruby はすべてがオブジェクト

なので、基本型どころかリテラルにもメソッドがあります。 100.to_s # => "100" なんてこともできます。 Visual Studio 2005 な言語は多分以下のようにしないと通らない。 //Console::WriteLine(100.ToString()); // C++/CLI では compile error Console::Wr…

tracking reference handle

int main(array ^args) { int src = 100; Console::WriteLine(src); int% tracking = src; // tracking reference handle tracking = 200; Console::WriteLine(src); return 0; } 実行結果: 100 200 参照と同じようなものだという認識でいいのかな。 * -> ^ …

delegate

public delegate void print(); void hoge_print() { Console::WriteLine("hoge"); } void hige_print() { Console::WriteLine("hige"); } int main(array ^args) { { print^ p = gcnew print(&hoge_print); p += gcnew print(&hige_print); // ! p->Invoke(…