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

Haskellがちょー楽しい

ゲームプログラミングどころかもはやC++出すらないという!で、問題のHaskellは開発環境だけは一応整えて置いたんですが、 その取っ付きにくさからずーっと放置してました。 しかし、そろそろLinuxも飽きてきたので、 昨日の夜あたりから重い腰を上げて、こ…

最近とか

いやーなんかモチベーションが保てなくてすっかりプログラムやってねぇー。 ってか、あれだな1回下がるとなかなか上げれない性格…。まぁそれでも何もやってなかったわけではなくて、 VMwareにLinuxぶっ込んで開発環境を整えて見たりしています。 特に目的は…

Googleがプログラミング言語「Go」をリリース

ITMedia:Google、オープンソースのプログラミング言語「Go」リリース Googleがプログラミング言語「Go」をオープンソースで公開したそうです。 ちなみにソースコードはこんな感じ。 package main import fmt "fmt" func main(){ fmt.Printf("Hello World\n")…

vec::pointer

ベクトルの先頭配列のポインタを返します。 #include #include "vec/vec.hpp" #include "vec/extension/pointer.hpp" #include "vec/extension/dimension.hpp" namespace vec = kmt_ex::math::vec; typedef vec::vec vec3; int main(){ vec3 v; // 配列によ…

vec::dimension_

vec::dimensionのインスタンス版。 インスタンスから次元数の取得を行います。 #include #include "vec/vec.hpp" #include "vec/extension/dimension.hpp" namespace vec = kmt_ex::math::vec; typedef vec::vec vec3; int main(){ /** インスタンスから次元…

vec::extension::visit

重要なファクターその3 visitorパターンを利用して vec へ対して操作を行っていきます。 例によって operator| で簡易接続。 まぁここら辺は殆ど『C++テンプレートテクニック』を真似ているだけなんですが…。 #include #include #include #include "vec/vec…

仮想関数があるかどうかの判定

調べたらあったので貼り付け。 boost::is_polymorphic ってのがあるみたいね。 #include template struct is_polymorphic{ struct A : public T{}; struct B : public T{ virtual ~B(){}; }; static const bool value = sizeof(A) == sizeof(B); }; struct h…

/

template typename T > struct dimension{ static const int value = detail::dimension_impl::value>::value; };

vec::dimension

ベクトルの次元数の取得を行います。 #include #include #include "vec/vec.hpp" #include "vec/type_traits/dimension.hpp" #include "vec/preprocessor/make_type_traits_value.hpp" #include "vec/preprocessor/make_type_traits_is_vec.hpp" /** D3DVECT…

KMT_EX_PP_MATH_VEC_MAKE_TYPE_TRAITS_VALUE

例によって、マクロを使用して、is_vec の自動生成を行います。 #include #include #include "vec/vec.hpp" #include "vec/type_traits/is_vec.hpp" #include "vec/preprocessor/make_type_traits_is_vec.hpp" /** D3DVECTOR の特殊化 */ KMT_EX_PP_MATH_VEC…

vec.is_vec

重要なファクターその2。 型がベクトルかどうかの判断を行います。 #include #include "vec/vec.hpp" #include "vec/type_traits/is_vec.hpp" namespace vec = kmt_ex::math::vec; typedef vec::vec vec3; int main(){ std::cout ::value ::value 例によっ…

プリプロセッサで簡易生成

vec::value のテンプレートの特殊化をプリプロセッサで簡易生成する為のコード。 DirectX とかの定義が楽になる…か? #include #include #include "vec/type_traits/value.hpp" #include "vec/preprocessor/make_type_traits_value.hpp" /** D3DVECTOR の特…

ベクトルの型情報の取得

重要なファクターその1 ベクトルが保持している型情報の取得を行います。 #include #include "vec/vec.hpp" #include "vec/type_traits/value.hpp" namespace vec = kmt_ex::math::vec; int main(){ typedef vec::vec v_float; typedef vec::vec v_double; …

そろそろ再開

なんかかなり放置してたけど最近やっと再開したので投稿。 時間もあるので(いや、そんな事やってる場合じゃないけど)ちょくちょくやってみようかと。 とりあえず、コア部分だけ。 templatevalue_t = float > struct vec{ typedef value_t value_t; enum{ d…

いまさらながら

ふと思い立って Visual Studio 2010 Bate をインストールしてみました。 ラムダ式スッゲー。 とりあえず、まだ英語版しかないみたいですが、スキン自体はそんなに変わっているわけではないので、 英語が読めなくても操作はそんなにしづらくないです。 ただ、英…

で、現在は

就活で有利になるかどうかはわからんけどゲーム作ってます。 ぶっちゃけ就活云々よりは、単に作りたいだけなんですがねっ! そんなわけで昔作ったゲームから描画とウィンドウ周りの処理だけを引っ張りだしているんですが、 これがまたひどいのなんのって。 …

そんなこんなで

結論から言うと、来月で会社を辞める事になりました。 経緯については詳しく書けないけど、まぁ辞める事になった結果は変わらない。 そんなわけで現在、有給を消化しながら一応(?)就活中です。 誰かこんな俺に仕事を下さい…。

sq_push 関数のオーバーロード

スクリプトの関数に引数を渡すときは、下のような感じに値をpushしていく。 sq_pushinteger(v, 10); // in t型 sq_pushfloat (v, 0.45f); // float 型 std::string str("Squireel"); sq_pushstring(v, "Squireel", str.size()); // 文字列 ただ、これだと渡…

スクリプト側の関数の呼び出し方

function main(){ print("Hello Squrrel World\n"); } 上ののようなスクリプトが定義されていた場合に、 script"main"(); こんな感じでC++側からスクリプト側の関数の呼び出しを行いたい。 で、実装するとこんな感じ? // 関数の戻り値の型を定義 template s…

ファイル読み込みとか

std::fstream を使用すると下のように簡単にファイルを読み込むことができる。 std::ifstream ifs("Title.pic", std::ios::binary); std::vector<char> buffer; buffer.assign( std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>() ); しかし、いざ使って</char></char></char>…

ライセンス云々

多分、大丈夫…だと思う…。 Squirrel License あと参考になりそうなサイトリンク http://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel http://wikiwiki.jp/lua/?Squirrel

スクリプト言語

会社で社内スクリプトを触る機会があって、思いのほか興味がわいた。 とりあえず、家でluaでもいじってみようかと思い、 環境構築を終えて、サンプルをちくちく作っていたら 友人から「Squirrel」なるものを教えてもらう ←いまここ。 んーちょっと調べてみた…

互換性のないtypedef

ようは下のような事がしたかったんです。 typedef int foo; typedef int hoge; foo f = 10; // ok hoge h = 20; // ok f = h; // 型が違うので error にしたい どこかで見たような気がしたけど、探したのがなかったので作った。 templatevalue_t = unsigned …

しかし・・・

仕事でプログラミングをやってると家でまったくプログラミングをやる気が起きない いや、別に仕事で疲れているからとかじゃなくて、 仕事で使ったソースをもう1度家で打つのかと思うと余計に手が進まないのですよ。 まぁそれでも促進剤があれば何とかなると…

C++

気になったので適当に作ってみた。 #include <iostream> struct base{ virtual ~base(){} template< typename T > void func(T rhs){ try{ dynamic_cast<virtual_func<T>&>(*this)(rhs); } catch(std::bad_cast&){} } template< typename T > struct virtual_func{ virtual void operat</virtual_func<t></iostream>…

計画って大変ですね

以下、愚痴になります。 いやー最近、会社の方がやばい事になっているので色々と考える事が多くなってきました。 そもそも何も下地ができていないのに強引にやろうと進めるのが間違っているよねー。 いや、ポジティブに考えるんだ。 こういう時こそ改革する…

*1248703575*templateクラス名の命名規則

C++

前から気になっていたけど template クラス(構造体)の名前が小文字なのは stl にあわせてあるのかしら? template struct value_type{ // この value_type の事ね typedef T type; }; 今までは頭だけ大文字(ValueTypeな感じに)書いていたけどこの際だから…

Vector 〜その2〜

ずいぶん長い明日になってしまった…。 1回書かないと間が空いてしまうのは悪い癖。って事で前回の続き。 #include #include #include #include // ############################################################################# // 前回作ったベクトルク…

Vector 〜その1〜

うう、前使っていたブログサイトと違って、いろんな書き方ができて感激…。 まぁめんどくさいからそんなに使う気はないけど。とりあえず、ゲームプログラミングらしいと言う事で、しばらくはベクトルについて考えて見ます。最初に目標を立てておかないと途中…

むぅ、油断してるとすぐに間隔が開いてしまう。

とりあえず、昨日買ってきた本の話でもして誤魔化すか。そんなわけで、昨日は知り合いに約束をすっぽかされた為、新宿のジュンク堂で1時間ぐらい面白い本がないか探していました。 いやーあそこって座って読める場所が用意されているから便利なのよねー。 本…