タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

c++とC++とdevに関するf99aqのブックマーク (7)

  • mutableな参照を返さないために - かそくそうち

    えーと、今日は作業はほとんど進まず、設計を少し弄っただけです。 前から気になっていた問題なんですが、コンテナをメンバに持つクラスで、そのコンテナを外部から自由に弄らせたい場合、よく void bar_check(int x); // 何かのチェック関数 class hoge { public: std::list<foo>& foo_list() { return foo_list_; } void bar(int x) { bar_check(x); // 必ずこのチェックを通す必要があるので、カプセル化が必要 bar_ = x; } private: std::list<foo> foo_list_; int bar_; }; みたいに書いていました。 メンバ変数をpublicにしたくないけど全機能を使うためには参照を返すしかなく、実質的にメンバ変数を公開してしまっているのに変に拘って

    mutableな参照を返さないために - かそくそうち
    f99aq
    f99aq 2007/10/27
    うあ〜、なるほど。
  • dup2(2) - odz buffer

    ref:http://d.hatena.ne.jp/naoya/20070731/1185893412 キモになるのは 複数のサービスをまとめて面倒を見るにあたって、それぞれのサービス用のリスニングソケットを select(2) で多重化する 接続があると fork して子を作り、その子を exec して体のプログラム(daytime.pl や echo.pl に相当するもの) を実行する exec する前にソケットディスクリプタを 0, 1, 2 に dup2(2) する というところです。特に最後のところですね。exec でプログラムを切り替えてもファイルディスクリプタはそのまま継承するので、あらかじめ dup でソケットと標準入出力をつなげておいて exec することで、exec したあとのプログラムの標準入出力が接続ソケットとのやりとり相当になるという。なるほどー。 inetd

    dup2(2) - odz buffer
  • C++で関数呼出しを視覚化 コールグラフを出力してみよう - higepon blog

    「Graphvizによるファンクション・コールの視覚化」を参考に、今開発中の Scheme インタプリタのコールグラフを出力してみた。 pvtrace のインストール http://www.mtjones.com/developerworks/pvtrace.zip 大きめの trace をしたいのであらかじめいくつかソースを書き換える。 symbols.h #define MAX_FUNCTIONS 2000 // 元は 200 だった stack.c #define MAX_ELEMENTS 50000 // 元は 500 だった インストール $ make $ sudo make install graphviz のインストール $ sudo apt-get install graphviz ターゲットのコンパイル 今回は Scheme のインタプリタがターゲット。 CXXFLAGS

    C++で関数呼出しを視覚化 コールグラフを出力してみよう - higepon blog
  • C(++)言語: valgrindの使い方

    ubuntu% uname -a Linux ubuntu 2.6.12-10-386 #1 Sat Mar 11 16:13:17 UTC 2006 i686 GNU/Linux ubuntu% valgrind --version valgrind-3.0.1 (0) 目次 Valgrindに含まれるツール Memcheck: メモリエラーを検出する(default) Cachegrind: キャッシュミスを検出する Massif: ヒーププロファイラを使う まとめ valgrindの使い方とエラーメッセージを整理してみた。「valgrind --leak-check=full command」というコマンドラインをよく用いる。これによりメモリ周りのバグを検出出来る。 --tool=cachegrindではプログラム実行時のキャッシュミス率を測定する事が出来る。cg_annotateを

    f99aq
    f99aq 2006/06/13
  • Error and Exception Handling

  • A Cycle Collector on Gecko - steps to phantasien t(2006-05-07)

    Gecko に実験的な cycle collector が実装されつつある. Brendan Eric が報じた. 記事によると Bug 333078 - XPCOM Cycle Collector がそれ. だいたい動いてるらしい. cycle collector とは循環参照用のガベコレのこと. (以下サイコレと略す.) Gecko の XPCOM は寿命管理に参照カウントを使っている. なので循環参照があるとメモリリークがおこる. Ajax の台頭でガンガン DOM を書き換えることもあり, XPCOM 内での循環参照が問題になっていた. 開発者の間で議論があり, (参照: "Fresh XPCOM thinking") おそらくその結果として上記のサイコレが実装されたのだろう. C++ プログラマとしては興味がある. なお, オープンソースだと他には Python でもサイコレが使

    f99aq
    f99aq 2006/05/23
    A Cycle Collector on Gecko
  • Standard Template Library プログラミング on the Web

    1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat

  • 1