YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

C++

Boost.勉強会

久々に毛色の違う勉強会に参加してきました。 Boost.勉強会 : ATND 途中までしか参加できませんでしたが、とても有意義な勉強会でした。C++を自前でごりごり書いていたことを思い出すと、もはやBoost使えば大抵のことはぐっと楽になるなあという印象を強烈に…

PythonでCのラッパを書く

動機 ふと思い立った。簡単なサンプルを書いたつもりだったけど、思わぬところでちょっとはまったからメモ。 方法 サンプルコード 基本的にはこちらの写経。 PythonからCプログラムを呼び出す | 象歩 Cのラッパを書いたのは2度目だけど、前回はバインディン…

C++0xドラフト公開

C++

C++ 12年ぶりに次世代スタンダードへ - "C++0x" 策定進み草案公開へ | エンタープライズ | マイナビニュース 200x年代には公開はムリと思ってましたがようやくでましたねー。この草案がほぼ仕様になるだろうから、早くも実装が始まったりしないかな。

google-glog -- C++用ロギングライブラリ

C++

google-glog - Logging library for C++ - Google Project Hosting 研究室でC++を使ってるかた、誰か試してみてください。これはかなりいけてると思うんですが。たいていのUnixライクなOSなら使用可能です。Cygwinでも使えるところがポイント。 今はC++でコ…

C++の入門書って…?

設計者自らが書き下ろす「C++入門書」とは~Bjarne Stroustrup氏との対話~ (1/4):CodeZine C++に関する本は数多くありますが、LLやJavaがプロジェクトで使われる言語として普及しだしてからは徐々にその数を減らしてきている気がします。またC++といって…

MacBookにOpenCVの環境を構築する

動機 OpenCVの講習会に参加したものの、一般参加者にはWindowsのOpenCV開発環境が提供されており、Macを持ち込んだ自分は、自力で環境構築をしなければならなくなったため。 方法 Page not found - Koike Laboratory @ UEC Tokyo ここに詳しい。まずFinkをイ…

MICO CORBAのインストール(加筆)

CORBAを使ってみる(インストール編) - YAMAGUCHI::weblog どうも共有ライブラリをインストールしようとするとそこでエラーが起きるので,configureするときに--disable-sharedオプションを付けた方がいいかもしれない.

MICO CORBAでの関数への変数の渡し方

C++

動機 CORBAでクライアントがサーバと通信をする際に複数のデータを受け取りたいときに使うTYPE_out型の引数をどう扱っていいか分からなかったので調べてまとめたかった. 前置き IDLではモジュール,インターフェース,オペレーションというC++で言うところ…

MICO CORBAでの型変換

C++

動機 MICO CORBAを用いて通信をする際に元々のライブラリで用いているクラスとの型変換をしなければならないため. 一覧 CORBA.hをインクルードしてあげる. IDL C++用ラッパー 定義 short MICO_Short CORBA::Short unsigned short MICO_UShort CORBA::UShor…

CORBAで外部から接続して落ちる

現象 外部ホストのCORBAのサーバアプリケーションに接続するとCOMM_FAILUREなどの例外を吐いてクライアントアプリケーションが落ちてしまう. 対処方法 というかこんな設定をすることに気が付かなかった. Page Redirect /etc/hosts の最初のエントリがマシ…

テンプレートをヘッダファイル外で定義する

C++

動機 普通テンプレートはマクロと似たような扱いを受けるので,通常はヘッダファイルに書くことになる.しかし,見た目は関数なのにヘッダファイルに書くというのがどうも気持ちが悪くてソースファイルに書くことができないのかなと思ったのがきっかけ. 方…

CORBAを使ってみる(インストール編)

動機 研究で急遽分散オブジェクト通信をする必要が出てきた上に,ちょうど過去にCORBAで作られたプログラムがあったのでそれを流用する形で行こうと思ったため. 方法 今回はMICO CORBAというライブラリを使ってCORBA環境を構築します.動作要件は下記の通り…

exceptionとかlogic_errorとか名前空間とか

C++

最近になって初めてc++でtry-catch構文を使うようになったんですが,今まで使わなかったモノだから慣れないことが多くて困る.怠け者な自分はよく #include <iostream> using namespace std; なんて感じでコードを書き始めるんだけど,これだとうっかりするとすぐに名</iostream>…

libpqxx & gccで遊んでみた その2

こんな感じのコードを書いてみた.ちょっとずつ使えそうな感じがしてきた.サンプルコードをひたすら読むに限る. /** @file test_libpqxx.cpp * @brief this file is test program using libpqxx2.6.9 * @author YAMAGUCHI * @date 2007.12.23 * @attention…

libpqxx & gcc で遊んでみる

libpqxx(PostgreSQLのC++用ライブラリ)を使ったメモ DownloadPage – libpqxx [pgsql-jp: 28187] Re: char varchar textについて 上記サイトからlibpqxx2.6.9.tar.gzを落としてきて展開しビルド. # tar xzf libpqxx-2.6.9 # ./configure --prefix=/usr # m…

Doxygenでよく使うコマンド

SourceForge.net: Sakura Editor - Develop コードをドキュメント付けする いくつかのサイトで紹介されていますが,細かいコマンドになるとマニュアル見直さないといけないので,ここに自分がよく使うコマンドをメモ.マニュアルはこちらにあります. Doxyge…

ディレクトリの中身を再帰的に表示

最近はデータを大量に取得して、一気にバッチ処理に掛けるみたいなことをやってますが、いい加減シェルスクリプトを書くのがめんどくさくなってきたので、それ専用のクラスを作ってしまおうと昨日くらいから書き始めました。で、一応できたんでソースを載せ…

GDBを使う(はじめて編)

最近毎日毎日C++を書いてはデバッグ作業に追われているわけですが、やはりいつまでもcerrやprintfで対応しているわけにもいかないのでそろそろgdbの使い方でも覚えようかと思い立ち、使ってみました。 …やべえこれ便利すぎる。なんで今まで使わなかったんだ…

boostでtokenize

C++

letsboost::tokenizer 工学系だとCSV(カンマ区切りファイル)やTSV(タブ区切りファイル)を読み込んで行列/ベクトルに突っ込むみたいなコードを書くことがしばしばあります。最近のスクリプト言語だとこういった文字列処理が得意だったりするわけですが、c…

boostで正規表現

C++

C++で正規表現を使ってマッチングをする必要があったので,折角boostを使ってることだしregexを使ってみた.その際,boost/regex.hppをincludeしてるのに undefined reference to `boost::basic_regex > >::do_assign(char const*, char const*, unsigned in…

凡ミス

C++

簡単なプログラムをコンパイルしようと思ったら下のようなエラーがでた。 error: new types may not be defined in a return type 原因がわからずあれこれ調べたら、こんな記述を発見。 That error is typically caused by forgetting a semicolon at the en…

Cygwinでboostを使う

boost ライブラリのインストール ここの通りにやったが、いろいろ試しても error: Duplicate name of actual target: exact.dll.a みたいなエラーが続出し、インストールできなかった。よくよく見てみるとcygwinのsetup.exeでdevelの中にboost関連のパッケー…

STLで関数オブジェクトを作る

C++

最近C++を書いていてSTLを使うことが多いので、いろいろとサンプルを探してみたんだけど、俺の頭が馬鹿すぎて例文を読んでもいまいち分からなかった。で、ようやく意味が分かったのでメモ。Templateを使わない例ですので、使うときは適宜読み替える。*1例え…

意味不明なエラー表示

C++

正直自分のコーディングは力任せで、「とりあえずコードを書いて、エラーが出たらデバッグしていけ」みたいなスタイルでやってます。*1ダメダメなやり方ですが、気が付くとそうなってるんですよね。残念。で、最近コーディングしてたら理由が分からないエラ…

virtual関数での注意

C++

g++でコンパイルしてたら undefined reference to `vtable for (クラス名)' とか言うエラーがでた。意味分からないとか思っててんぱったけど、調べたらvirtual関数の実装をしていなかったことが原因だった。初歩ミス。だけどエラーメッセージが意味なして…