きままにブログ

プログラミングを主とした私のメモ帳です。寂しいのでコメントください笑

2015-01-01から1年間の記事一覧

ネタ

自称C++使いですが、 http://d.hatena.ne.jp/Gemma/20080129 の要望に答えましょう。〔以下プログラム部分以外は殆ど引用です〕C++使いの人に、 関数型言語って何がすごいんですか と聞かれて、 じゃあC++で accumulator すなわち、数nをとり、「数iを取って…

Luaでnewuserdataして、それを利用しようとすると元のデータが破損している【解決】

エラーする状況 デバッグモードでたまにRTTI情報を持っていないと怒られる。 #include <iostream> #include <Lua53/lua.hpp> using std::cout; using std::endl; struct Object { virtual ~Object() { cout << "Object::~Object();" << endl; } }; struct C : public Object { int x; </lua53/lua.hpp></iostream>…

C++のキャスト

C++

なぜキャストが必要か? コンパイラは、あるメモリの最初のアドレスを知ったところで、それがどこまで続くのか、或いはどのメンバがどの位置に現れるかということを事前に知っていないといけません。そうしないと計算できませんからね。だから、ある変数xが型…

簡易メモリアロケータ―ちゃん

C++

概要 いわゆるリスト構造を1つ1つ繋ぐのではなく、複数個をまとめて繋いでいく形のリンクリストを際発明しただけのものです。freeもできて、そのポインタを後で再利用していきます。例外周りが適当です。有用な点は、どれだけメモリ確保しても元のデータのポ…

Luaの関数をC側で記録し、いつでも呼び出せるようにする

概要 例えば、関数myfuncをLuaで定義し、それを登録する関数registerMyFunctionおよび実行する関数doMyFunctionをC側で用意するとする。すなわち、テストコードは次の通り : local myfunc = function() print("test_code"); end registerMyFunction(myfunc);…