Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

C++

C++で型情報を持ったままにしておく

やりたいこと 型情報なしに管理したいがないと削除時に困る。削除時だけは型情報が欲しい。 コード #include <iostream> using namespace std; class Foo { public: Foo() { cout << "Foo" << endl; } virtual ~Foo() { cout << "~Foo" << endl; } protected: void *m_</iostream>…

C++のテストフレームワークを調べてみる

無難にgoogle testを使うか、cspecで新しいことを始めるかといった選択でしょうか・・・。 google test framework cppunitよりもスマートな印象。基本機能に大きな違いはないですが、google testの悪いところが今のところ見つからないので、cppunitの代わり…

C++のことはじめ。

C++

前提 Javascriptは書けるけど、C++を書いたことがないという友人のためのエントリー。何かスクリプトがかけることが前提で構文などをできるだけ、端折りながら進めていきます。 開発環境を作る Windowsの場合 Visual StudioのExpress版をインストールして(こ…

ローカルクラスとインナークラスについて

C++

特徴 ローカルクラスもインナークラスも外のクラスメンバにprivateなメンバにもアクセスできる ローカルクラスはテンプレート引数に使えない(コンパイラによっては使えるかも) ローカルクラスとインナークラスの定義 外のクラスにアクセスできるサンプルコ…

ローカルクラスとインナークラスについて

C++

特徴 ローカルクラスもインナークラスも外のクラスメンバにprivateなメンバにもアクセスできる ローカルクラスはテンプレート引数に使えない(コンパイラによっては使えるかも) ローカルクラスとインナークラスの定義 外のクラスにアクセスできるサンプルコ…

C++ではじめるテンプレートエンジン入門

ClearSilverとは ClearSilverはC++で使えるテンプレートエンジンでHDFと呼ばれるデータをテンプレートファイルに注入する仕組みになっている。HDFはテキストとしても表現できるが、プログラムのコードとしても表現できるようになっており柔軟に対応が出来る…

ちょっと気になるアドイン1

http://visualstudiogallery.msdn.microsoft.com/ja-jp/be0123a2-6d23-4b68-9f82-d43840bc655d ショートカットの一覧表示をしてくれるっぽい。たまに使うかな? MetalScroll extension RockScrollの後継っぽい。 ClassAccessor Generator extension NUnitに…

MT-5255という今まさに欲しかったバーコードリーダが売ってた

見つけたときにこれは!と思ったものの何者かわからなかったので、http://noppoland.at.webry.info/200910/article_45.htmlを見てから購入。とりあえず、使えることが確認できないと300円でもゴミがたまって困る。 汎用USBドライバ 組み込みとかハード側には…

templateでObserverパターン

20091109 修正 ListenerCollection::Remove()内のstd::vector::erase()にconst_iteratorを渡していたのをiteratorに修正。vector::erase - C++ Referenceをみる限り、const_iteratorで通らなそう。書いたのが結構前だけど、(VC9で)通してから貼り付けたつも…

多重継承でオーバーロード?

C++

下のようなコードが通るのを知らなかった。 class HogeA{ public: virtual void Foo( int x ) = 0; }; class HogeB{ public: virtual void Foo( int x, int y ) = 0; }; class TestC : public HogeA, HogeB{ public: void Foo( int x ) { std::cout << x << …

ファイルサイズを調べたい

boost::filesystem::file_sizeを使うと簡単 boostを使うのはとてもいい選択だなぁとよく思うけども、file_size以外の関数を使わないのに使うのがちょっと大げさかなと思って、fstreamだけで調べる方法をメモしておく。 今回はファイルサイズを取得するには?…

HandyARの開発環境の準備

HandyARにはOpenCVとglutが必要なのでそのセットアップについてメモする 今回の環境 Visual Studio.net 2005 OpenCV 1.0 glut3.7 HandyAR 0.2 OpenCVのセットアップ OpenCVをダウンロードする。今回はWindowsで開発を進めるので、windows版のインストーラー…

Doxygenを使ってみた

Doxygenはメジャーなドキュメント生成ツール。 C++、C、Java、Objective-C、Pythonなどに対応していて、JavaDoc風のコメントからでも生成できるのがありがたい。 Javaなんかは別にJavaDocを純粋に使ったらいいと思うのだけども、C++とかだと結構面倒。加えて…

HandyARのデモが動かない問題の原因を発見した

色々指摘がありましたので、それに関してはこちらに書きました。 転送中によるとCV_CAP_PROP_FRAME_HEIGHTやCV_CAP_PROP_FRAME_WIDTHを使って高さと幅が取得も設定もできないのは、OpenCVのカメラのモジュールがLogicoolの製品に対応していないのが原因ぽい…

Win32APIなんて使いたくないでもUTF-8で出力したい

以前書いたときにはロケールの設定によりUTF-8のデータが読み込めるようになったしかし!!!まだ出力ができていなかった・・・ Win32APIなら WideCharToMultiByteやMultiByteToWideCharなどがあり、確かにこれでも出来るっぽいのだけれども 環境依存があま…

教訓1

C++

クラスのイニシャライズリストに全てのメンバを書いて、いつでも意図した通りに初期化されるか 考慮しないといけない。自分で作ったクラスに有効にしたり、無効にしたりするメソッドがあって、下のような感じになっている状況。 class A{ public: A(){} void…

strstreamやboost::lexical_castをしたときに数値にカンマが入る

C++

答えはここにあった!!! http://www.freeml.com/cppll_novice/1550/latest std::locale loc( std::locale( "japanese" ), &std::use_facet< std::numpunct< char > >( std::locale::classic() ) ); std::locale::global( loc ); とか std::locale loc = st…

Visual Studio 2003でUTF8のソースを保存すると

C++

特定の2バイト文字列があると「定数が2行目に続いています」 と意味わからないことを言ってくる。http://blog.kujirahand.com/?eid=445675 ここで言っているように、文字列の最後に\0を入れておくとうまく行った。 std::locale::global( std::locale( "japa…

マニピュレーターが必要になったのでここを参考にしたhttp://homepage2.nifty.com/well/Manipulator.html#manipulator_witout_parameterGCCだとうまく行かなくて、色々試したが原因不明

電脳コイルとか攻殻機動隊のような世界を作れるライブラリ

ARToolKitというライブラリがあって http://www1.bbiq.jp/kougaku/ARToolKit.html のようなことができるらしい。電脳コイルでみたような世界が構築できる可能性を示していると言えそうだ。

OpenCVについてのメモ

C++

CVはComputer Visionの略公式のチュートリアル http://jaist.dl.sourceforge.net/sourceforge/opencvlibrary/opencv_introduction_2007June9.pdf インストールとセットアップの方法が示されている。 http://kurolab.cntl.kyutech.ac.jp/wiki/farm/HowTo/?(Wi…

C++の書き方とかまだしっかり身についてないなぁと思った。

C++

http://wikiwiki.jp/redstrange/?C%2B%2B%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%A5%B9%A5%BF%A5%A4%A5%EB ライブラリの設計を考えるときに、一つのプラットフォームに限らず他でも動いて欲しいなと思って試行錯誤中なのだが、システム依存の部分を減らしたい…

Windowsログの操作は不人気

Windowsログのネタはあんまり欲しいものがGoogle先生でも教えてくれない。 とりあえず、英語でも検索してみたんだけども、見つからない。そもそもMSDNで見つからない(いや、見つけづらいだけかもしれない)ことが一番の問題。 Win32APIは使っちゃいけないん…

Windowsのログを操作する仕事でデバッグに悩んでいる方へ

不完全な情報です。正しく調べつくした結果じゃないので何か問題あったらドンマイの方向で イベントビュワーでevtファイルが生成できます。ログを加工することをするときには OpenEventLog、ReadEventLogなどのAPIを使うわけだけれども 状況として多々、evt…