glibcのバージョンってプログラムから簡単に得る方法ないと思ってたけどあったわ。 #include <stdio.h> #include <gnu/libc-version.h> int main (void) { puts (gnu_get_libc_version ()); puts (gnu_get_libc_release ()); return 0; } % ./a.out 2.12 stable これでバージョン依存のworkaroundいれるのが捗るな
ここでは、入出力ストリームと共に使用するマニピュレータの作り方について解説します。マニピュレータは、関数でも、クラスでも実現できる少し毛色の変わったおもしろい存在です。マニピュレータを理解するにはオペレータのオーバーロードの知識が必須ですので、そちらもご覧ください。 マニピュレータとは 引数のないマニピュレータの作り方 引数のあるマニピュレータの作り方 グローバル関数として作成する方法 グローバルな関数オブジェクトとして作成する方法 クラスオブジェクトとして作成する方法 マニピュレータの応用例、printf 風マニピュレータ マニピュレータとは ページの先頭へ マニピュレータとは、cin、cout などを代表とする入出力ストリームに対する、挿入演算子 << や抽出演算子 >> と協調して、入出力フォーマットの変更を行うなどの目的で設計されたもので、標準ライブラリでは endl、setw、s
* Fedora 20でのインストールについて新たに書きました * 最新の(Mavericks) MacでOpenCVをインストールして使うやりかたについて新たに書きました. OpenCVのインストール sudo apt-get install libcv-dev libhighgui-dev libml-dev libcvaux-dev sudo apt-get install opencv-doc まずC++でOpenCVを使ったコード(main.cpp)を書きます.例えばこんな感じ.引数で渡した画像2枚の差の大きさを求めるプログラムです. #include #include #include int main(int argc, char *argv[]){ cv::Mat img1=cv::imread(argv[1]); cv::Mat img2=cv::imread(argv[
main() の前に関数を呼ぶ C/C++ のプログラムで、main() の前に関数を暗黙的に呼びたいときがあります。ここでは GCC の拡張を使った方法と、C++ のコンストラクタを使った方法を紹介したいと思います。 GCC では main() の前に呼ばれる関数を __attribute__((constructor)) という拡張機能を使って定義できます。たとえば、次のプログラムでは main() の前に foo() が呼び出されます。 #include <stdio.h> __attribute__((constructor)) void foo() { printf("hello, before main\n"); } int main (int argc, char **argv) { printf("hello, world\n"); return 0; } 実行結果は以下の
kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く