2011-02-01から1ヶ月間の記事一覧

ListをC++で

twitterで見たとあるつぶやきを基にJavaのListをC++でできないかを考えてみた。私の考えたコードは以下のとおり(間違いなので注意)ちなみにlistではなくvectorでコードを書いている。 #include<vector> struct Hoge{}; struct Derived : public Hoge{}; struct Deriv</vector>…

メタプログラミングでcos : 追記

2段階進めたら精度が上がるとか書きましたが、アレは嘘です。いや、上がりますが、それ以上に円周率の値の精度が悪すぎた。そしてVS2010でテストしたところ演算中にオーバーフローします。故に、円周率の精度を上げた以下のコードにすると精度があがりまし…

メタプログラミングでcos

メタプログラミングの練習にcosを求めるコードを作ってみた。もう2段階くらいテーラー展開をすると更に精度は上がるだろうが、今のままでも普通に使う分には十分だ。 #include<iostream> #include<boost/format.hpp> //const double PI = 3.141592653; template<unsigned int x> struct Factorial { enum </unsigned></boost/format.hpp></iostream>…

ついでにsin

ついでにsinも求めてみた。それだけ template<int x> inline const double get_sin() { const double y = 0.00000001*x; return y - y*y*y/Factorial<3>::val + y*y*y*y*y/Factorial<5>::val - y*y*y*y*y * y*y/Factorial<7>::val + y*y*y*y*y * y*y*y*y/Factorial<</int>…

windows7SP1のおかげで結婚できました!

今若者の間で流行のwindows7SP1を導入してみた。何か変わったということもなく、普通に作業をしていた・・・・・ら?!なんとckwが起動直後に強制終了するようになってしまった(:D)rz。あぁぁぁ.......rubyのテストにしょっちゅう使ってるのにこれは困った。う…

decltypeでconstを外したい:追記

すばるさんからコメントをいただいて、やりたいことを標準ライブラリでできるようになったのでこれをまたメモしておこうと思います。type_traitsをincludeして、 std::remove_const<decltype(hoge)>::type fuga;//constのみを外す std::decay<decltype(hoge)>::type fuga;//const,volatile,参</decltype(hoge)></decltype(hoge)>…

decltypeでconstを外したい

const T &hogeをdecltype(hoge)とするとdecltypeはconst になってしまう。constを外すのにはconst_castが必要なのだが、これには型の名前が必要となるため、型の名前を変数から得ようとしているのにこれでは本末転倒となってしまう。 というわけでとりあえず…

メンバ変数の参照返しについて2

前回の記事にコメントをいただいたおかげでこれのデメリットを見つけることができました。 class Hoge { public: const Foo& foo()const{return foo_;} private: Foo foo_; }; Hoge get_hoge() { return Hoge(); } というような記述があって const Foo& foo …

ubuntu server

ubuntu serverの導入ですが、再インストールしなおすことでどうにかうまくいきました。便利なものでwebにSS付きで紹介しているサイトなんてあるんですね。画面の文字が読めないので、大体似ていれば適当な操作をしてどうにかインストールできました。 EnterK…

const参照返し3

日に日にわかってくることが増えているので今のところまとめ、みたいな感じでw。 http://bit.ly/giW0ee http://bit.ly/hGMpr5 のようにconst &を受け取れば一時オブジェクトの寿命が延びるようです(ただし前の記事でコメントで頂いたような持ち主オブジェク…

templateって

template という宣言においてそもそもTにcv修飾ってしていいの?という疑問を持った。 確かダメだったような気がする。だとしたらそもそも前の記事に書いたstd::vectorなんてものは当然ill-formedなわけで.....。確か駄目だったような気がするけれどどうだっ…

メンバ変数の参照返しについて

メンバ変数の参照返しについての記事にコメントをいただいたのでEffectiveC++を見直してみたけれど、ローカル変数の参照を返すべきではない、というようなことしか書いていなかった。 class Foo { public: void fuga(); }; class Hoge { public: const Foo& …

std::declvalまとめ

昨日の夜(正確には今日の0時〜2時頃)までにすばるさんから頂いたコメント&すばるさんに検証中にアドバイスをもらったこと等をメモしておきます。私としてはここはそういう書き溜めにする予定。 class T { public: class U{}; U get_u();//ココ }; void hoge…

暗号解読(笑)

購入して3年目にしてグラフィックの部分が壊れたノートPCを持っているのですが、修理費が6万円と高くその際は修理せずに新品のThinkPadX100を購入することにしました。 壊れたノートPCは描画関係がおかしくPC起動時から1ディスプレイ6画面表示、わけのわから…

vectorってダメなのね

すばるさんのつぶやき を見てstd::vectorはill-formedだということを知った。まずideoneでgccではダメ(コンパイルエラー)だということを確認し、直後に同じくすばるさんのつぶやきでも言ってたけれどVC++ではどうなるのかを自分で確認してみたく試した。結果…

decltypeは将来的にdecltype(T)::Uができるようになる?

decltypeについていろいろ調べていて decltype(t)::U hoge; みたいなのができないか試したところ、gccでもVC++でもできませんでした。 webでいろいろ調べてみたところ、将来的にはこれはできるようになるらしいですね。今のところ実装されているコンパイラは…

返す値はどちらにするべきか

今日、プログラミングをやっていてメンバ変数を外部に渡すgetterの部分を書いていて悩んだ部分がある。 T hoge()const{return hoge_;} か const T& hoge()const{return hoge_;} にしようか悩んだ。右辺値参照云々とわけのわからないことを悩んでいたけれど、…

ポインタの参照渡し

luaの初期化用関数 void init(lua_State *lua) { lua = lua_open(); ..... } みたいなのを書いていて当然これだとポインタのコピーが渡されるのでいろいろ不都合(というかエラーで落ちる)なことに。というわけでまぁ、そこに気づいて void init(lua_State **…

明日帰ります

明日、諸事情(私の不手際)で函館に帰ります。3日前に大阪に帰省したばかりだというのにね。 まぁ、もう少しこっちにいることも可能だけれど、明日は向こうで飲み会があるらしいのでそれなら帰らざるをえない。飲み会が私を呼ぶのよ。

C#でのconstが....

C#でサーバとポートを通して通信するプログラムを書いていた時に、const byte[] send_bytes.....と書いているとエラーがでた。ググッた結果、どうやらC#はconstのついた配列を定義する時は静的なコンストラクタが無いといけないらしい。 JavaとC#はconst(fin…

windows7で規定のプログラムが...

インストールしていたnotepad++がずっと規定のプログラムに設定できなくて困っていた。windows7はprogram filesにファイルを置くと 設定ファイルの上書きができなくて困るので別フォルダにインストールしていたのだが、それが原因かと思ってた。ずっと右クリ…

inline書いてて....

inline T get_hoge(T2 &&) { return ..... } inlineと右辺値参照&&を使えば定数値しか取らない展開関数をconstに収めて何かできるかな、とか思ったけれど意味ないか.....

これで連携が有効になった?

twitterとの連携を有効にしてみた。

とりあえず登録してみた。

twitterでは書ききれないようなことを 書き溜めていくためにブログを持ちたいと思っていたので、 よくプログラミングの記事が書かれていることが多いはてなを利用してみることにした。使い方としてはtwitterと同じくかきなぐり的なものが多いかな。はてなダ…

これがメタプログラミングってやつかい?

昨日、templateを使ったsin,cosテーブルをGameProgrammingGems1巻で見たコードを思い出しながら作れないか挑戦してみた。 結果としては作れなかったわけだけれど、フィボナッチ数列は作れたので惜しいところまでは来ていると思う。GPGは半年以上前に借りて…