タグ

c++に関するTAKESAKOのブックマーク (74)

  • サイボウズ株式会社

    サイボウズはクラウドベースのグループウェアや業務改善サービスを軸に、社会のチームワーク向上を支援しています。

    サイボウズ株式会社
    TAKESAKO
    TAKESAKO 2008/04/25
    「Visual C++ のことを高機能なマクロアセンブラだと思っている節がある光成さん」www
  • C++テンプレートで素数計算 - kazuhoのメモ置き場

    re C++のテンプレートで素数計算 - 西尾泰和のはてなダイアリー 西尾さんが書くとか言っていたので自分もやるかと思って書いて、経験の分余裕で先着だろうと思っていたら西尾さんもできていたという。すごいなぁ。 #include <stdio.h> template<bool Cond, int N> struct CondPrint { }; template<int N> struct CondPrint<true, N> { CondPrint() { printf("%d\n", N); } }; template<int N, int D=2, int Mod=N%D> struct IsPrime { typedef typename IsPrime<N, D!=2?D+2:3>::Print Print; }; template<int N, int D> struct IsP

    C++テンプレートで素数計算 - kazuhoのメモ置き場
    TAKESAKO
    TAKESAKO 2008/04/18
    template<int N, int D=2, int Mod=N<3?-1:N%D> struct IsPrime { typedef typename IsPrime<N, D!=2?D+2:3, D*D>=N?-1:N%D>::Print Print; };
  • C++のテンプレートで素数計算 - 西尾泰和のはてなダイアリー

    C++のテンプレートで計算をするなんて変態だと思っていたのだけど、奥さんがさくっと10分くらいで書いたFizzBuzzのコードを見るとなんか非常に素直で読みやすいコードだったので、僕もテンプレートで何かしてみることにしました。 Kazuho@Cybozu Labs: C++ テンプレートで(いまさら)FizzBuzz http://labs.cybozu.co.jp/blog/kazuho/archives/2008/04/fizzbuzz_cpp_template.php そんなわけでできたのが素数を求めるコード。途中の「数字を全部出す」と「2の倍数を出す」をコメントで残してあります。isPrime2とかisPrime3とかあるのは3つ合わせてisPrimeの働きをする型のそれぞれの名前を思いつかないので適当な名前になっています。テンプレートにはデフォルトの型引数があるみたいなのでisP

    C++のテンプレートで素数計算 - 西尾泰和のはてなダイアリー
  • C++テンプレートでFizzBuzz - おびなたん☆

    これは、1月20日に北海道にて行われた日野望の会で披露したネタのまとめと解説のエントリーです。 そもそも こんなしょーもないネタを思いついたのは、このブログの昨年の検索キーワードトップ3が C++ FizzBuzz テンプレート だったから。それぞれのキーワードについては、 C++ - Wikipedia Fizz Buzz - Wikipedia テンプレート(プログラミング)- Wikipedia あたりを見てちょうだい。 特に、会場には「テンプレートって知らなーい」って人が2,3人いたのでテンプレートについてちゃんと説明したかったのですが、いかんせん時間が足りなすぎでした。テンプレートをまじめに語るとが一冊書けてしまうので、端折りました。当然、ここでも端折ります。 上述のリンク先とかを見るか、テンプレートをまじめに語ったを一冊読んでくだせえ。 とりあえず、おいらのFizzBuz

    C++テンプレートでFizzBuzz - おびなたん☆
  • Kazuho@Cybozu Labs: C++ テンプレートで(いまさら)FizzBuzz

    « Filter::SQL を使って掲示板を書いてみました | メイン | C++ テンプレートを使って高速な高機能サーバを書く方法 » 2008年04月17日 C++ テンプレートで(いまさら)FizzBuzz re C++テンプレートでFizzBuzz - おびなたのはてな日記 C++ テンプレートで if を定義しているのは面白いと思いましたが、一方で FizzBuzz を実現するためのコードとして見た場合は冗長じゃないかと思ったので、自分でも書いてみました。こんな感じ。 #include <iostream> using namespace std; template<int N, int Mod3=N%3, int Mod5=N%5> struct Print { Print() { cout << N << endl; } }; template<int N> struct P

    TAKESAKO
    TAKESAKO 2008/04/17
    簡潔なコードはわかりやすい
  • ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-

    前置き 自分の C++ レベルに絶望したので「ロベールのC++入門講座」を読んで再入門していく過程を日記に書いていきます。 「おまえはそんなことも知らずにコードを書いていたのか!」「それは間違い!」など叱咤激励募集中です:-) 読んでみたら、たくさんの驚きがありました。 スルーせずに読んでもらえると1つくらい役に立つことを提供できるかもしれません。 例えば5章のデフォルト引数に関数を使える例とか。 ルール 前置きはともかくはじめましょう。13:48にスタバで始めました。 読んで行くうえでいくつかルールを決めます。 知らなかったことは正直に知らなかったと書き、自分が読んで分かる説明を書く。 知識が曖昧だった所も同様に明確な説明を書く。 悩んだ内容を書く。 理解が怪しい所は必ずコードを書く。 さあ1章から読んでみよう。 1章 まずは使い方(13:50) 各 OS 毎に C++ の開発ツールを紹

    TAKESAKO
    TAKESAKO 2008/03/20
    higepon++
  • C++ コンパイラにおける値渡しの最適化 - kazuhoのメモ置き場

    プリミティブ型でなくとも小さな構造体 (or 共用体) ならレジスタ渡しになる、ってのは C で最適化されたコードを書く際に、しばしば使われるテクニック。でも C++ だと、コピーコンストラクタやデストラクタがある場合はこの最適化が不可能。他にも言語仕様的に細かな条件はあるのかな。ともかくコンパイラの実装でこの可否判断はどうなっているのか、と SUN のドキュメントを読んでいたら、とても頑張っていて驚いた。 In compatibility mode (-compat[=4]), a class is passed indirectly if it has any one of the following: A user-defined constructor A virtual function A virtual base class A base that is passed ind

    C++ コンパイラにおける値渡しの最適化 - kazuhoのメモ置き場
    TAKESAKO
    TAKESAKO 2008/03/19
    kazuho++
  • Valgrind Home

    Information About News Tool Suite Supported Platforms The Developers Source Code Current Releases Release Archive Variants / Patches Code Repository Valkyrie / GUIs Documentation Table of Contents Quick Start FAQ User Manual Download Manual Research Papers Books Contact Mailing Lists and IRC Bug Reports Feature Requests Contact Summary Commercial Support How to Help Contributing Project Suggestion

    TAKESAKO
    TAKESAKO 2008/02/25
    valgrind-safe
  • C/C++ リファレンス

  • STLのページ

    角のページへ戻る STL(Standard Template Library) C++の標準テンプレートライブラリ、STLのページです。 2003/6/7 コンテナ全ページ標準に合わせて修正 目次(と予定) 更新履歴 はじめに STLとは? '99 11/07 作成 その前にC++で知っておかなければならないこと 馴染みがない(かもしれない)単語 '99 9/23 わずかに修正 テンプレート(template<>) 2001 1/31 更新 環境 '99 2/20 VCでSGI_STLを使う、BeOS、egcs等 使い方 イテレータ(反復子)の使い方 '99 6/19 更新 関数オブジェクトの使い方 '99 7/4 mem_fun()の使い方追加 早見表 STLで使う主なクラス '99 6/13 各クラスの説明、ヘッダをまとめた STLで使われる名前 '99 6/13 微妙に更

  • 概要 - プログラミング言語 D (日本語訳)

    D って何? Dは、汎用のシステム/アプリケーション プログラミング言語です。 高級言語ですが、高速なコードを書く能力や、 OS の API やハードウェアへの直接アクセスの機能も維持しています。Dは、 中規模から100万行単位の大規模ソフトウェアをチームで開発するのに適しています。 Dは学習が簡単で、 プログラマを補助する沢山の機能を提供し、 コンパイラの強力な最適化技術と相性の良い言語です。 Dはスクリプト言語でも、 インタプリタ言語でもありません。 VM を持たず、 宗教やおおげさな哲学とも縁がありません。 信頼性・保守性の高い・読みやすいコードを書いて仕事をサクサク進める必要のある 現実的なプログラマのための、 現実的な言語です。 D は、様々な言語のコンパイラを実装し、 その言語で大きなプロジェクトを構築してきた数十年の経験の集大成です。 D はそれらの言語(特に、C++)からイ

  • VC8のfilebufとsetlocale - かそくそうち

    今日はライブラリの作業を進める気分ではなかったので、前々から気になっていた、VC8のstd::filebufがstd::setlocale()を呼ばないと動かない問題と、std::setlocale()を呼ぶと標準出力/エラー出力がおかしくなる問題について調べてみました。 原因に関してはこんな感じでした。 std::filebufのファイル名がCのロケールに従ってワイド文字に変換される ↓ Cのロケールを変更するためにstd::setlocale()を呼ぶことになる ↓ Cのロケールが"C"以外になると、ファイルポインタへの書き込みで、ワイド文字経由でコンソールのコードページへの変換が発生する ↓ 既定ではstdoutやstderrがバッファリングなしの設定なので、マルチバイト文字のリーディングバイトだけでワイド文字に変換しようとして失敗する ↓ 書き込みに失敗したため、std::file

    VC8のfilebufとsetlocale - かそくそうち
  • Polyglot Quine - 更新履歴兼雑記

    http://shinh.skr.jp/dat_dir/poly_quine.txt 基的には上記 4言語の Polyglot quine 。あとまぁ C と PHP でも Quine になる。あなごるだと m4 なんかもまぁ。 C++ が標準準拠してない気がするので気になるなら main に int をつけると良い。 実行は以下みたいな。 i@colinux ~/wrk/ag> diff poly_quine.txt =(gcc -xc =(php =(perl =(python =(ruby poly_quine.txt))));./a.out) i@colinux ~/wrk/ag>はてなのシンタクスハイライト (vim のなんだっけ) を試してみる。 C++ #include/* s='''*/<stdio.h> main(){char*_;/*==;sub _:lvalue{$

    Polyglot Quine - 更新履歴兼雑記
    TAKESAKO
    TAKESAKO 2007/06/18
    Polyglot Quine
  • STXXL: C++Standard Template Library for Extra Large Data Sets

    The core of STXXL is an implementation of the C++ standard template library STL for external memory (out-of-core) computations, i. e., STXXL implements containers and algorithms that can process huge volumes of data that only fit on disks. While the closeness to the STL supports ease of use and compatibility with existing applications, another design priority is high performance. The key features

    TAKESAKO
    TAKESAKO 2007/05/29