C++と色々

主にC++やプログラムに関する記事を投稿します。

2012-06-01から1ヶ月間の記事一覧

ポケットモンスターホワイト2買った

ポケットモンスターホワイト2買ったった。今の進行度は1つめのジムに挑むところ。手持ちはヒマナッツ(Lv8) ポカブ(Lv13)の2匹。ゆっくり進めようと思います。しかしまぁ、ヒマナッツよええええw レベル3や4のヨーテリーとタイマンして普通に負ける。だがそ…

Type Erasure Any編

C++

本の例題がboost::anyの簡易実装だったので、見ながら書いてみたやつ貼り。 #include <iostream> #include <typeinfo> using std::cout; using std::endl; class Any { public: //デフォルトコンストラクタ Any(); //テンプレートコンストラクタ template<class Type> Any(const Type& value)</class></typeinfo></iostream>…

型特性メタ関数(おまけ)

C++

前回の記事の続き。やっぱりboost使ってない版も書いてみた #include <iostream> using std::cout; using std::endl; //基底クラス:ガンダム class Gundam { }; //ガンダム派生クラス:エクシア class Exia : public Gundam { }; //ガンダム派生クラス:ゴッド class </iostream>…

型特性メタ関数

C++

例のテンプレート本(下記の参考文献参照)のSFINAEの章の勉強がてら、あるクラスが特定の基底クラスの派生クラスかどうか判定するプログラム書いてみた。 今回の場合はGundamクラスを派生してるかどうかチェックするプログラム #include <iostream> #include <boost/utility.hpp> using n</boost/utility.hpp></iostream>…

Observerパターン

Observerパターンの理解が怪しかったのでサンプル書いてみた。 こ、これであってるのか?! #include <iostream> #include <string> #include <list> class IObserver; class ISubject { public: virtual void Push(IObserver* observer) = 0; virtual void Notify() = 0; }; class I</list></string></iostream>…

2次ベジェ曲線

2次ベジェ曲線買いてみようと思った。折角なので自作のDirectXラッパライブラリで書いてみた。 #include <Frame.h> #include <Utility.h> #include <memory> #include <list> using namespace NekLib; using NekLib::Utility::DrawPoint; using NekLib::Utility::GetColor; #ifdef _DEBUG #prag</list></memory></utility.h></frame.h>…

配列のポインタ渡しと参照渡し

C++

C++テンプレートテクニックやっていたらSFINAEの章のサンプルコードに template<class T, size_t N> T* begin(T (&ar)[N]) { return ar; } という記述があった。これはなんだろう?と思ってググったこちらにまとめてあった。</class>

右辺値参照とムーブセマンティクス

C++

こちらを見るとよくわかります本当は怖くないムーブセマンティクス - yohhoyの日記(別館) 本の虫: rvalue reference 完全解説

テンポラリオブジェクトの寿命

C++

自分がテンポラリオブジェクトの寿命と参照、右辺値参照をちゃんと理解していないため色々試してみる。 値を代入する場合、右辺値と関数の戻り値ではデストラクトされるタイミングが違うみたい? #include <iostream> using namespace std; void Section(int n) { cout </iostream>…

静的ポリモーフィズムとタグ・ディスパッチ

C++

折角なのでプログラミングの記事を書いてみようと思う。ポリモーフィズムについて。ざっくり言うと、同名の関数や型が所属しているクラスによって振る舞いを変化させること。 継承によって実現できる。 #include <iostream> class Parent { public: virtual void Show(</iostream>…

ソースコード貼るテスト

C++

約5ヶ月ぶりの更新 ソースコードを貼るテスト<pre>タグで貼ってみる #include #include using namespace std;int main() { function f = [](int i){ return i * i; }; cout return 0; } >||と||<で貼ってみる #include <iostream> #include <functional> using namespace std; int main(</functional></iostream></pre>…