タグ

C++に関するnozomのブックマーク (53)

  • 変電工 - Google C++スタイルガイド日本語訳

  • CodeZine:Google、C++開発者のための4つのライブラリを公開(オープンソース, グーグル)

    Googleは、C++開発者のための4つのライブラリを公開している。 公開されているのは、C++/Python向けコマンドラインライブラリ「gflags」、高速なマルチスレッドmallocのコレクションで、TCMalloc、heap-checker、heap-profiler、cpu-profilerを含む「perftools」、パフォーマンスの高いハッシュマップを実現している「sparsehash」、基的だが使い勝手のよいテンプレートの「ctemplate」。それぞれ無償でダウンロードすることができる。 詳細は下記Webサイトを参照のこと。 Google Code Four Google open source tools on Google Code google-gflags google-perftools google-sparsehash google-ct

  • http://d.hatena.ne.jp/aiue3/20070210

  • バベル案内

    Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、JavaPerl

  • Xbyak - x86 JIT assembler -

    Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel

  • iostreamの拡張

    Last update 1999/09/22 iostreamの拡張 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 iostreamの拡張について 例によって唐突ですが、iostreamの拡張について書いてみたいと思います。ここでいう「拡張」とは、自分でcinとかcoutみたいなものを作ろう、ということです。 「こんなもん一番最初に教えんなや」と比較的評判の悪いiostreamですが、 演算子オーバーロードがいわば「御法度」な使い方をされている メソッドの命名法がやたら変 などのように表面的に美しくないのが悪評の原因で、その辺に目をつぶれば実はそれなりによくできたシステムだったりします。 拡張方法も一度覚えると結構便利ですぜ。 iostream拡張の基礎知識 iostream、というと、そのインターフェイス(Java的な意味じゃなくて)であるところのstd::cin

    nozom
    nozom 2007/02/10
  • Boost Libraries

    アルファベット順ライブラリリスト カテゴリ別ライブラリリスト 文字列とテキスト処理 コンテナ イテレータ アルゴリズム 関数オブジェクトとより高位のプログラミング ジェネリックプログラミング テンプレートメタプログラミング プリプロセッサメタプログラミング 並列プログラミング 数学と計算 正当性とテスト データ構造 入出力 言語間サポート メモリ 構文解析 その他 不完全なコンパイラの回避手段 どのライブラリがどのコンパイラで動くかを理解するには Compiler Status. ライブラリのダウンロード,ビルド,インストールについてはGetting Started. アルファベット順ライブラリリスト any - 異なる型のひとつの値を格納できる、安全で汎用的な入れ物。Kevlin Henney 作 array - STL に準拠した定数サイズの配列のラッパコンテナ。Nicolai Jos

    nozom
    nozom 2007/02/10
  • C++ Labyrinth

    C++ ラビリンス C++ は、数多くの謎、咒文、罠、そして宝箱が仕掛けられた、壮大な迷宮である。 その C++ 迷宮をさまよう同志たちへ、ささやかながら、いくつかの道標を お贈りしたい。 もちろん、私自身、C++ 迷宮の一彷徨者に過ぎない。誤りや不備な点があれば、 遠慮なく指摘していただきたい。 キャスト (2001-03-01) dereference (2001-03-01) マルチスレッドにおける singleton (2001-03-17) 契約による設計 (2001-03-25) 戻値とコンストラクタの妖しい関係 (2001-04-09) マルチスレッドにおける singleton (その2) (2001-04-10) 自己言及的なテンプレート (2001-06-13) オーバーロードは継承できない (2001-06-16) GCC 3.0 のインストール (2001-07-0

    nozom
    nozom 2007/02/10
  • C++マニアック,よくわかるC++言語プログラミング講座

    What's new 2008/06/30 Google 検索窓をつけてみました。 2008/06/14 身長や体重など複数の基準でソートする例 を追記。 2008/06/14 英文字文書を読んで、文字数の頻度順にソートする例 を追記。 古い What's new 当サイトで提示するサンプルコードは、あまりにも単純明快で、一見つまらないぐらいに見えるはずです。しかし、もしあなたがそう感じたのであれば、それは、ねらいどおりで、大成功と言えます。ちょっと難解と思われている C++ が、つまらなく見えるほど平易に解説されているということですから。 基礎(入門)編 その他(非 C++ 的) エッセー C++ はアセンブリ言語のように軽快であるにもかかわらず、仮想クラスやクラスの継承、オペレータのオーバーロード、そして、テンプレートと、高級言語のプログラミングテクニックを余すところなく駆使で

    nozom
    nozom 2007/02/09
  • C++マニアック,マニピュレータの作り方,how to make manipulator

    ここでは、入出力ストリームと共に使用するマニピュレータの作り方について解説します。マニピュレータは、関数でも、クラスでも実現できる少し毛色の変わったおもしろい存在です。マニピュレータを理解するにはオペレータのオーバーロードの知識が必須ですので、そちらもご覧ください。 マニピュレータとは 引数のないマニピュレータの作り方 引数のあるマニピュレータの作り方 グローバル関数として作成する方法 グローバルな関数オブジェクトとして作成する方法 クラスオブジェクトとして作成する方法 マニピュレータの応用例、printf 風マニピュレータ マニピュレータとは ページの先頭へ マニピュレータとは、cin、cout などを代表とする入出力ストリームに対する、挿入演算子 << や抽出演算子 >> と協調して、入出力フォーマットの変更を行うなどの目的で設計されたもので、標準ライブラリでは endl、setw、s

    nozom
    nozom 2007/02/09
  • Part2 C/C の疑問にまとめてお答え - C/C は永久に不滅です!:ITpro

    Part2では,「そもそもC/C++についてよくわかっていません」という方のために,C/C++言語に関する素朴な疑問をQ&A形式でお答えします。“今さら人には聞けないなぁ”というような疑問も取り上げていますので,初心者の方でも安心して読んでください。 C/C++の最大の魅力は,コンピュータでできることなら,ほとんどどんな種類のプログラムでも比較的簡単に書けることです。 CがもともとOSを記述するために作られたことは特集1でも触れました。OSの役割をおおざっぱにいうと,ハードウエアの機能を使いやすい形でアプリケーション・ソフトに提供することです。アプリケーション・ソフトは基的にOSが提供する機能を利用して動くプログラムですから,OSを作れる言語であれば,事実上どんなアプリケーションでも作れることになります。 パソコンに関していえば,Cの処理系がいくつかのベンダーからコンパイラとして提供され

    Part2 C/C の疑問にまとめてお答え - C/C は永久に不滅です!:ITpro
  • C++ における NULL - odz buffer

    いや、もうなんていうか自分的には C++ における NULL の話をしているつもりなのに C での話を持ってこられても困るというか。 調べた人もいるので、そっちをみれば終了なんだけど、GCC のメーリングリストでもちょっと議論になっていたのが見やすかったのでそっちから引用。 > I see what you are saying, but unfortunately, this is not my code. I am > mearly porting it. And, technically, it should work since the standard says > NULL should be a 0 or 0L ^^^^^^^^ No. The C++ Standard does not say anything like that. The exact wording is

    C++ における NULL - odz buffer
    nozom
    nozom 2006/12/16
  • プログラミング言語ヒエラルキー:Geekなぺーじ

    「Programmer Hierarchy」という面白いネタがありました。 結構笑えました。 一部日語化してみました。 図中の矢印は「相手よりも上であるとみなしている」事を示しているそうです。 もともとは「Geek Hierarchy」というオタク同士が「俺はこいつらよりオタクではない」と思いあっているというネタがあって、それのプログラマ版のようです。 ちょっとアメリカ文化ですが、元ネタのオタク版も面白いのでもしよろしければご覧下さい。 おまけ:プログラミング/技術関連お笑いネタ プログラマレベル 人生の全てはTCP/IPに学んだ いいから殺せ。後はこっちでなんとかするから 技術系シモネタ

  • コンストラクタで仮想メソッドを呼ぶ

    今更言う事でもないが、コンストラクタで仮想メソッドを呼んでも意図通りに動かない。 C++ class BaseClass { public: BaseClass() { cout << "BaseClass ctor\n"; Func(); } virtual void Func() { cout << "BaseClass Func()\n"; } }; class InheritClass : public BaseClass { public: InheritClass() { cout << "InheritClass ctor\n"; } void Func() { cout << "InheritClass Func()\n"; } }; int main() { BaseClass* p = new InheritClass(); p->Func(); return 0; }

    nozom
    nozom 2006/12/13
  • Bjarne Stroustrup が見る、現在のソフトウェアの問題:An Agile Way:オルタナティブ・ブログ

    プログラミングの問題(by C++設計者のStroustrup) http://www.techreview.com/InfoTech/17831/ をラフに訳してみる。(未完) どうして、ほとんどのプログラムは「よくない」のでしょううね? いいソフトウェアもあります、火星探査ローバー、Google、人ゲノムプロジェクト、などなど、クオリティ・ソフトウェアです!でも、現実世界にある平均的なプログラムをみてみると、泣きたくなる。当の問題は、ソフトウェアというものがまだまだ永遠につづく改良の繰り返しの創発段階にあること、動くソフトウェアをつくることに向けて、トライアル・エラーをしながら、ちっちゃな奇跡を起こしながら進んでいること。 ソフトウェア開発者は、「不安定な要素を組み合わせて、それなりに安定したシステムを作る」という困難なアートに熟達してきたい。ここで問題は、でも、それをどうやってやっ

    Bjarne Stroustrup が見る、現在のソフトウェアの問題:An Agile Way:オルタナティブ・ブログ
  • Loading...

    nozom
    nozom 2006/12/08
  • ssato日誌 - GCC による C++ コードのアンチパターンの発見 -

    nozom
    nozom 2006/12/08
  • enbug diary(2006-12-06)

    _ Q&A with C++ inventor Bjarne Stroustrup 昔の 似非インタービュー記事 ほど面白くないけど、 言っていることは筋が通っているよねえ。 いや、当り前か。 どっちかと言うと、 /.のあいかわらずな議論 の方が面白かったりする。 その中で Boost.MPL なんて何の役にも立たないだろ、みたいなコメントがあったけれど、 それは視野が狭すぎるんじゃないかねえ。 そりゃ、その人には役に立たないんだろうけどさ、 きっと汎用的なテンプレート・ライブラリとか作らないんだろうし。 でもMPLだって、Boost自体には役に立っていて、 Boostには直接役に立つものがいっぱいあることは否定できないんじゃないかな。 だから間接的に役に立っていると言える。 C++をまともに使う人には、って意味だけど。 自分にとってどうか、とか、ある場面でどうか、みたいなを無意味に一般化

    nozom
    nozom 2006/12/07
  • C/C++ - typecastをmethodに : 404 Blog Not Found

    2006年12月05日00:30 カテゴリiTech C/C++ - typecastをmethodに 実はこれと類似のことも、ある程度Cでやることが出来る。 404 Blog Not Found:電脳言語における祖先の呪い--演算子篇 型を変換するのも「タイプキャスト」ではなく「メソッド」ということにしてしまえばいいのだから。odz buffer - type declaration とか cast とか たしかに Ruby なんかでは obj.to_i と書いたりするが、cast にも int => double のように、実際の型変換が発生するタイプ(C++ でいう static_cast)と void * => char * のようにコンパイラに変数の取り扱い型を指示するためだけで演算の発生しない*2 cast (C++ でいう reinterpret_cast, const_ca

    C/C++ - typecastをmethodに : 404 Blog Not Found
    nozom
    nozom 2006/12/05
  • こども(てれび) - C++でSchemeインタプリタを作ろう

    少し作った。 (define (factorial n) (if (= n 1) 1 (* n (factorial (- n 1))))) ; ok (factorial 10) ; 3628800おー。Accelerated C++ と Effective C++ というを読んだんだけど書き方がわからないのでひげぽんのコードを参考に勉強しようとしたんだけど日記にコードは殆ど載ってなくてつかえねーと思いつつ書いた。そういう訳であんまり C++ の勉強にはなってないような。ポインタとか参照とかリソース管理とかがさっぱりわからない。メモリが駄々漏れ。 以下ソースコード main #include <iostream> #include <scheme.h> using namespace std; using namespace scheme; int main() { Environme

    こども(てれび) - C++でSchemeインタプリタを作ろう
    nozom
    nozom 2006/11/29
    意外と短いコードでできるんだ