[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

c++に関するnitoyonのブックマーク (113)

  • C++でMaybeモナド - Faith and Brave - C++で遊ぼう

    今日 id:uskz に会ったときに「C++でもMaybeモナドできますよ」って言われたので調べたらこんなのあった Maybe monad in C++ #include <boost/variant.hpp> class Nothing {}; template <class T> class Just { public: T val; Just(T x) : val(x) {} }; template<class T, class F> boost::variant<Nothing, Just<T> > operator>>=(boost::variant<Nothing, Just<T> > x, F f) { return (boost::get<Nothing>(&x)==NULL) ? f(boost::get<Just<T> >(x).val) : Nothing(); }

    C++でMaybeモナド - Faith and Brave - C++で遊ぼう
    nitoyon
    nitoyon 2008/12/05
    テンプレートでモナド。まだ理解してない。
  • Alchemy - Adobe Labs

    Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds

    nitoyon
    nitoyon 2008/11/18
    C/C++ のコードを AS3 に変換してFlashとして動かせるコンパイラ。
  • MASATOの開発日記: boost::arrayの初期化

    boost::arrayの初期化 Boost C++Librariesプログラミング 第2版を読んで気が付いたのですが、 boost::arrayクラスのオブジェクトは不思議な方法で初期化できます。 こんな方法です。 boost::array<int, 5> a = {0, 1, 2, 3, 4}; どんなコンストラクタを書けばこのように初期化できるようになるのかさっぱり分からなかったので、調べてみました。 結論。 boost::arrayにコンストラクタはありませんでした。デストラクタもありません。 仮想関数も無く、全てのメンバがpublicです。 どうやら、POD(Plain Old Data)型になる条件が満たされているようです。 つまりboost::array<int, 5>は、C言語互換の構造体なのです。 C言語時代、構造体は次のような方法で初期化できました。 struct fo

    nitoyon
    nitoyon 2008/10/19
    集成体型であればクラスを {} で初期化できる。
  • C++/printfからiostreamへの移植 - BugbearR's Wiki

    using namespace std を使うか、std:: を常に指定する。 † using namespace std を指定する場合 #include <iostream> using namespace std; void hello() { cout << "Hello, world" << endl; } std:: を常に指定する場合 #include <iostream> void hello() { std::cout << "Hello, world" << std::endl; } ↑ 改行は endl を使う。 † C の場合 #include <stdio.h> void hello() { printf("Hello, world\n"); } C++ の場合 #include <iostream> using namespace std; void hello

    nitoyon
    nitoyon 2008/10/13
    iostream の簡単な使い方。fill() と width(), fixed()。
  • 紫ログ:C++のテストフレームワークを試食 - livedoor Blog(ブログ)

    TopCoderの為に少しやる気になってきたところで、Macでフリーで使える C++ のテストフレームワークをいくつか試してみたのでメモ。 CppUnit - C++ Port of JUnit CxxTest googletest - Google C++ Testing Framework Boost.Test CppUnitはテストの記述が若干面倒な気が。表示はシンプルで悪くない。 CxxTestはインストール方法が他と違って少し悩んだが、記述量が少なくて取っつきやすかった。 googletestは記述量が少なめで、赤と緑のカラー表示コンソールで、マクロの種類も豊富。ASSERT マクロと EXPECT マクロの対応も分かりやすい。但し、出たばかりで日語での情報が少ない。 Boost.Testは普段Boostに慣れ親しんでいるなら良いかも。マクロの種類は多め。 とりあえず、goog

    nitoyon
    nitoyon 2008/10/03
    CppUnit, CxxTest, googletest, Boost.Test の比較。使えるマクロ、出力例などが書いてあってとても分かりやすい。
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

    nitoyon
    nitoyon 2008/09/17
    色んなアルゴリズムをC++で実装したもの。簡単な説明もある。
  • Gulfweed

    今年は @ohkura 君と2人で参加していました。チーム名は Mox Caml です。タップするとコンビネーターが出てきます。 まず、problem description をちゃんと読んでいなかったので、example に書いてある関数適用の方法と再帰呼び出しの方法に無駄に悩んでいたことは反省すべき。ohkura くんが自力で気づいたときは無駄に感動しあい、後ほどおもいっきり脱力しました。 1日目は simulator を書きながら attack や dec の使い方を考えていました。関数適用回数制限をチェックしない AI で invalid になりまくっていたが、理由を長い間理解できず。 2日目には attack も help をホイミにするのも慣れて結構上位に来る。このころの AI は最初に help ホイミを無限ループでうって HP 65535 のスロットでただただ敵を殴るもので

    nitoyon
    nitoyon 2008/09/09
    TopCoder に C++ で参加するための便利プラグイン。
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
    nitoyon
    nitoyon 2008/08/03
    一口にOOPと言っても3つぐらいあるよ、というお話。
  • はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 - naoyaのはてなダイアリー

    はてなブックマークに関連エントリーを配信する機能を追加しました。詳しくは 告知日記で。 この関連エントリーは、株式会社プリファードインフラストラクチャー (以下 PFI) の技術者のみなさんと一緒に開発しました。週末に2泊3日で京都で合宿をしてコア部分を作り、その後京都と東京に分かれてオンラインで連絡を取りながら2週間ほど作り込みをして、今日リリースです。 この合宿では何チームかに分かれて、今回の関連エントリーの機能以外の開発も行っています。その辺の成果はまた後日にリリースできるのではないかと思います。 はてなブックマークの一つの問題として、昔のエントリーがデータベースに埋もれてしまうという点がありました。その問題の解決策としての類似記事抽出、それから検索機能の強化を以前から考えていました。PFI のメンバーのみなさんは情報検索技術のスペシャリストです。アカデミックな研究の成果を製品化を通

    はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 - naoyaのはてなダイアリー
    nitoyon
    nitoyon 2008/07/15
    DBからインデックスを作って検索精度を高めていくまでの流れ、PFIの開発方針。
  • mahral's homeage:C++でコードスニペット

    概要 既定ではC++にはコードスニペット機能がありません。 「Visual Studio 2005 IDE Enhancements」をインストールすることでC++でも コードスニペット機能が利用できるようになります。 インストール 「Visual Studio 2005 IDE Enhancements」を入手し、インストールします。 "C:\Program Files\Microsoft Visual Studio 8\VC\Snippets\1033\Visual C++"フォルダ内の全てのファイルを "C:\Program Files\Microsoft Visual Studio 8\VC\Snippets\1041\Visual C++"へコピーします。 Visual Studio 2005を起動し、[ツール]-[コード スニペット マネージャ]を実行します。

    nitoyon
    nitoyon 2008/07/11
    VC++でコードスニペット機能を使う。
  • C言語をブラウザで実行、Ruby/Python/Perlも然り | エンタープライズ | マイコミジャーナル

    Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが… 同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFire

    nitoyon
    nitoyon 2008/07/11
    AdobeのSilverlight+Iron**対策。正式発表はしてないけど Adobe MAX で紹介してた。/ すべてがABCになる。
  • google/protobuf · GitHub

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    google/protobuf · GitHub
    nitoyon
    nitoyon 2008/07/08
    Google の RPC/serialize 用のライブラリ。独自言語でデータ構造を記述。XMLより軽量、IDLよりシンプル。(リリース)http://google-opensource.blogspot.com/2008/07/protocol-buffers-googles-data.html
  • googletest - Google C++ Testing Framework - Google Project Hosting

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    googletest - Google C++ Testing Framework - Google Project Hosting
    nitoyon
    nitoyon 2008/07/04
    Google製のxUnit 風テストフレームワーク。
  • Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ

    ぴーびーしー - 東方算程譚 ふむ. むしろ Microsoft の開発現場で,一番 DbC が流行っているのが Visual C++ 関連だと思うのですが.Header Annotations とか SAL Annotations,C/C++ コード障害の検出と修正 等. 最近の Visual C++ のインクルードファイルや Windows SDKs 以下のインクルードファイルを見ていても,事前条件・事後条件の充実っぷりは異常.その規模は既に COM 全盛期の IDL を凌ぎます. あれは手で書いているんでしょうかねぇ? 何か DSL から C/C++ のヘッダファイルを自動生成していてもおかしくない気もしますが,はて. 整数範囲注釈 そういえば Visual C++ 2008 SP1 のコード検証は,Header Annotations の整数範囲注釈を活用していないように見えるので

    Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
    nitoyon
    nitoyon 2008/07/03
    ヘッダで条件既定。specstrings.h。ヘッダが第二のドキュメントになる方向性。
  • 変電工 - Google C++スタイルガイド日本語訳

    nitoyon
    nitoyon 2008/07/02
    日本語訳ありがたい。各規約の背後にある理由を推測するのが楽しい。
  • ホワット・ア・ワンダフル・ワールド GCC Hacks セミナー資料

    Author:あろは (alohakun) WAKATSUKI toshihiro デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています

    nitoyon
    nitoyon 2008/06/30
    GCCの内部構造ついてのプレゼン資料。とても濃い。
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

    nitoyon
    nitoyon 2008/06/26
    gc。未読。
  • JavaScript 的な考え方で C++ Template に入門してみた - IT戦記

    はじめに id:kazuhooku さんが Kazuho@Cybozu Labs: なんとなくリフレクション in C++ という記事を書いていて、なんか凄そう! わくわく! でも、読めません>< Template 怖い>< という訳で C++ Template の勉強をしてみよう! そいえば、ちょっと前に 1000speakers で上野氏に C++ Template はチューリング完全、関数型言語というようなことを聞いたきがする! じゃあ、いろんなことが出来るはず! という訳で JavaScript で出来ることが C++ で出来るかを試してみよう! まず 関数テンプレートと構造体テンプレートどっちで JavaScript の関数を表現するべきかを考えた。 C++ の文法を考える // これはできない>< void foo() { void bar() { void baz() { }

    JavaScript 的な考え方で C++ Template に入門してみた - IT戦記
    nitoyon
    nitoyon 2008/06/26
    C++のtemplateとJSを比較しながら学ぶ。
  • Kazuho@Cybozu Labs: なんとなくリフレクション in C

    nitoyon
    nitoyon 2008/06/25
    C++でリフレクションを実現。まだソース読んでない。
  • Emacs で C とか Perl とか Ruby のデバッグをすると気持ちいい | フッ君の日常

    全国のprintデバッグ愛好家の皆様、こんにちは。VSとかEclipseとかのIDE以外でデバッガを使ったことのない僕がやってきましたよ。 最近、C言語でヒーコラ言ってる真っ最中な訳ですが、C言語だとprintデバッグがやりにくい訳で、デバッガ様の力を借りてみたくなった訳です。という訳で、巷で有名な gdb をちょっと試してみました。 基的な使い方は、以下を参考にしてます。gdb を用いたデバッグ方法GDBウノウラボ Unoh Labs: gdbの使い方 で、なんだか Emacsからも使えるみたいなんで、試してみたんですが、これが使いやすくてびっくり。"M-x gdb" で起動すると、Emacs のソース上に、現在の行が黒三角で、ブレークポイントが赤丸で表示されます。後は、コマンドラインでの操作と同じように、s とか n でステップ実行できます。 あー、もしかして、Perl とか Rub

    Emacs で C とか Perl とか Ruby のデバッグをすると気持ちいい | フッ君の日常
    nitoyon
    nitoyon 2008/06/18
    M-x gdb