タグ

C++に関するoto-oto-otoのブックマーク (92)

  • 株式会社ロングゲート - 製品案内

    Information 2013/12/25 書籍『プログラミングの魔導書 Vol.3』の発売 (書籍版の予約受付は終了しました) 2013/12/03 書籍『プログラミングの魔導書 Vol.3』の予約受付開始 2011/12/01 ブログを開始 2011/11/30 著者からの指摘を受け、書籍 『プログラミングの魔導書 Vol.2』PDF版を改訂 2011/11/02 書籍 『プログラミングの魔導書 Vol.2』の壁紙公開 2011/10/05 書籍 『プログラミングの魔導書 Vol.2』を発売 (書籍版の予約受付は終了しました) 2011/9/15 書籍 『プログラミングの魔導書 Vol.2』の予約受付開始 技術トレーニングサービスを開始 2010/8/07 書籍 『プログラミングの魔導書 Vol.1』を販売開始 2010/6/01 書籍情報を公開しました 2010/2/28 今年5月

    oto-oto-oto
    oto-oto-oto 2010/01/28
    見えてる。
  • あれ? - 梶本裕介の日記

  • エラーの整備 - higepon blog

  • いやなブログ - RAII と setjmp/longjmp

    RAII と setjmp/longjmp C++ には RAII (Resource Acquisition Is Initialization) というイディオムがあります。これはリソースの開放を確実に行うためのテクニックとして C++ のプログラムで広く用いられています。しかし、RAII も setjmp/longjmp という落とし穴があります。 RAIIの基 次のプログラムはメモリリークを起こします。 #include <string> using namespace std; int main() { string *p = new string; return 0; } このプログラムをビルドして valgrind でテストすると次のようなエラーメッセージが表示されます。4バイトのメモリリークが検出されました。 % g++ test.cc % valgrind ./a.ou

  • GCあれこれ - higepon blog

    GCに関してWebの資料やら、「情報処理学会誌94年11月号」を読み漁っていて大分詳しくなりました。 適当なメモは→Scheme/B.GC調査/02.GC概要 - Mona PJ Wikiに書いてあります。 ひとつまだ分からないことがあって迷っています。 GCを持たないAという言語で、GCを持つインタプリタBを実装するとき、Bのオブジェクトは管理テーブルでタイプや構造を管理して、GCに使います。 つまりAでB用のGCを実装することになります。 では、GCを持つCという言語で、GCを持つインタプリタBを実装するとき、Bのオブジェクトを解放するGCはB用のGCでしょうか。 それとも、C用のGCでしょうか。 個人的にはどちらの可能性もありそうだなと思っているんですが、実際の言語処理系ではどうなんだろう。 C++とBoehm GCでSchemeインタプリタを書いたら、GCの事は考えなくても良いのか

    GCあれこれ - higepon blog
  • はじめてのにき(2006-12-20)

    _ うお見落としてた! まともなリファラチェッカ無いのは恐ろしいことだよ…! http://www.kt.rim.or.jp/~kbk/zakkicho/zakkicho18.html#D20061214-1 VC だとこんななるのかー。 実はこのへん気になることがいっぱいなので今度調べる。 トランポリンは実行時に生成しないと言わない… のだろうか。 僕は実行時に作るヤツしか見たことないけど、 よくわからんな。 Binary Hacks の用語集を見ると… 載ってねえ!くそめ!! いやでもまぁ索引からひくとまぁ そんな感じのことが。 うーむトランポリンは jmp 装置を持ち運んでる印象なんだろうな、 というわけでそれはジャンプ台とか呼びたいような気がするけど これも今度調べる。 うーんしかし ; Line 8 の一行下の ??_9@$BA@AE とそのあとの ??_0@$BA@AE が微妙

    oto-oto-oto
    oto-oto-oto 2006/12/20
    トランポリン
  • Amazon.co.jp: C++クックブック: D. Ryan Stephens (著), Christopher Diggins (著), Jonathan Turkanis (著), Jeff Cogswell (著), 株式会社クイープ (翻訳): 本

    Amazon.co.jp: C++クックブック: D. Ryan Stephens (著), Christopher Diggins (著), Jonathan Turkanis (著), Jeff Cogswell (著), 株式会社クイープ (翻訳): 本
  • Exceptional C++ Style - 兼雑記

    http://www.amazon.co.jp/exec/obidos/ASIN/0201760428 読みました。最初はなんか、の体裁とか説明口調がすごいかっこよくて(「exportと国会議事堂の共通点は何か!?」とか)、目新しいこともちらほらとあったのでおおこれはいいかもと思ってたんですが、読み終わってみるとうーんなんかなぁという感じでした。おそらく、 目新しい内容はたいてい言語の隅みたいなことだった (C++ で & をいくつ連続させられるか!?とか、 export は使うな!とか) 含蓄のある話は知ってる話ばかりだった。(後半特にずっとそんな感じだった。なんで Boost.any の実装を紹介しないの!いいネタなのにもたいない) 大袈裟な表現は途中で飽きた。 std::string のメンバ100個以上ただ並べてその真ん中で「水面を破り、小さな空気溜まりで息継ぎだ。…」とか言わ

    Exceptional C++ Style - 兼雑記
    oto-oto-oto
    oto-oto-oto 2006/12/05
    Exceptional C++ Style
  • Amazon.co.jp: Win 32/C++マルチスレッドプログラミング詳説: Aaron Cohen (著), Mike Woodring (著), 金森玲子 (翻訳): 本

    Amazon.co.jp: Win 32/C++マルチスレッドプログラミング詳説: Aaron Cohen (著), Mike Woodring (著), 金森玲子 (翻訳): 本
  • 簡易 lambda 記法 - bind を用いない部分評価・関数合成,っていうか bind 嫌い嫌いだいっきらいっ! - Cry's Blog

    昔っからずっと思っておりましたんですが,ばいんどきらい. bind( plus, _1, 1 );ほらもうきらいきらいだいっきらい.ばいんどしんぢゃえ. plus( _1, 1 );こう書きたい.めがっさ可読性上昇.ほら,こんな書き方ができたら,あなたも今日から初めてみようお手軽 部分評価 plus( _1, 42 );& カリー化 plus( 42, _1 )( boost::cref( 42 ) );& 関数合成 plus( plus( _1, 42 ), 42 );& flip plus( _2, _1 );みたいに思いません?え?思わない?しょぼーん. で,こうするためにわざわざ普通の関数定義とラムダ対応の関数定義を分けて書くのか?当然 No. 普通の関数としての役割とラムダとしての役割を2重に担う形の関数オブジェクトが当然欲しい. plus( 2, 3 ); // -> 普通に

    簡易 lambda 記法 - bind を用いない部分評価・関数合成,っていうか bind 嫌い嫌いだいっきらいっ! - Cry's Blog
  • UnixLite - A LightWeight Unix Operating System Written in C ++

  • こども(てれび) - 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インタプリタを作ろう
  • 2006-11-26

    つまり、 template < typename Arg > class N { typedef Arg type; }; N<int> // ← この瞬間は、関数に引数をbindしただけ、というところか。 N<int> // ← 引数のbind :: // ← 関数呼び出し type // ← 結果参照eval_ifは #include <boost/bind.hpp> #include <boost/functional.hpp> int loop( int n ) { return loop( n-1 ); } int ret0( ) { return 0; } template < typename Then, typename Else > typename Else::result_type eval_if( bool b, Then t, Else e ) { if ( b

    2006-11-26
    oto-oto-oto
    oto-oto-oto 2006/11/27
    boost bind
  • 2006-11-25

    さむいわ。 俺ルールとして、「constなメンバはpublicにしてもよい」というのがある。 class Nanika { int var; public: int const cons_t; };そんなことしてメンバ晒せば、結合度上がっちゃう、という指摘はもっともなんだけど、getXXXとかのアクセサを作っても、それはほとんど一緒なはず。 一緒じゃない点に、アクセサを使えば、将来、その値が毎回再計算しないといけないとかになった場合に、変更が外部へ及ばなくてよろしい。 class Nanika { int var; int const cons_t; public: int getConst() const { return cons_t; } };こうしとけば、 class Nanika { int var; int const cons_ts[10]; public: int getC

    2006-11-25
  • 関数型言語 C++ - 兼雑記

    C++ は JS ほどじゃないにせよ、誤解されてきた言語だと思います。いや、複雑だとかいうのは誤解ではなく紛うことなき真実なのですが、その複雑さがただパラノイアから来た複雑なだけのものではなく、一応の有用性を伴うものだ…っていやそれはわかってそうな気はするので、誤解というほどのことでもないわけですが、昨今に比べて、なんか有用そうなものである、という認識は低めだったように思います。 ただ今度は、なんか関数型な雰囲気らしーぜ、というだけの単語が一人歩き気味な気がします。なんかわからんけど C++ すげー、みたいな、一昔前の Haskell が得ていたようなイヤな地位をゲットしているような気がして、それはそれで別の種類の、ある種の誤解であるように思ったのでした。 というわけでマルチパラダイム言語 C++ について、関数型言語としての機能について僕の見方を。 まず絶対に意識して欲しい部分なのですが

    関数型言語 C++ - 兼雑記
  • AquesTalk - テキスト音声合成ミドルウェア

    規則音声合成エンジン AquesTalkシリーズ 組み込み用に開発された小型軽量のエンジンで、テキスト情報(音声記号列)をリアルタイムに音声に変換して出力します。 これまで数百万台の機器に実装されています。現在、AquesTalk10/AquesTalk pico/AquesTalk2/AquesTalk1の4種類のエンジンがあります。 それぞれ音声生成アルゴリズムが違うため、声質が異なります。声質や動作に必要なリソース量を考慮してエンジンを選択します。 エンジン種類 AquesTalk pico シリーズ中、最小サイズのエンジンです。RAM500byte、ROM30Kbyte、8bit CPUという比類ない極小リソースでリアルタイムの音声合成ができます。リソース制約の厳しい小型の組み込み機器に適しています。 このエンジンを1チップマイコンに組み込んだ音声合成LSI AquesTalk p

  • 1章 1.5 ポリシーとポリシー・クラス - Modern C++ Designを読む(1) - higepon blog

    ポリシーやポリシー・クラスは、安全で効率のよい、そしてカスタマイズ性の高い設計用素材の実装を支援するものです。 ポリシー(policy)とは、クラス・インターフェースやクラス・テンプレートのインターフェースを定義するものです。 インターフェースは内部型の定義、メンバ関数、メンバ変数によって構成されます。 全然分からねぇぇぇぇ。 というわけでサンプルコードを写経しよう。(一部変えてます) Hello Worldクラス class HelloWorld { public: void say() { printf("Hello, World!\n"); } };Policyを2つ用意 template <class T> struct OpNewCreator { static T* Create() { return new T; } }; template <class T> struct

    1章 1.5 ポリシーとポリシー・クラス - Modern C++ Designを読む(1) - higepon blog
  • C、tko - @m_seki の

    そればっかり使ってると自動変数に期待するものが変わってくるかも。オブ脳と似てるような‥。なに脳って言うんだろ。参照しかない世界へ、どぞ。 あ。むかし青木淳さんが話してたことが突然理解できた。

    C、tko - @m_seki の
    oto-oto-oto
    oto-oto-oto 2006/11/12
    C、tko
  • gcc4 と TR1 | d.y.d. 01:29 06/11/16

    23:41 06/11/30 べくたー GreenPad - 新着ソフトレビュー だそうです。 ソフト作者からひとこと、という欄を書きました。 今時のエディタなら GreenPad でできてる程度の多言語混在はできるんじゃないかと思うので、 ポイントというほどポイントかなーとかちょっと思ってしまったりもしつつ。 ひとことに書いたように、あれは 「既存のエディタコンポーネントを一切使わずに『テキストエディタ』を作るのって、 どうやるんだろう?」 が自分的には全てですね。作ってて、エディタの作り方という よりは、"この機能のこの実装って実は死ぬほど重くない?だいじょぶ?でも あとはこれを定数倍のチューニングするしか思いつかないんだけど" と行き詰まったときは 大抵その実装で十分うまく回るのでどんどん作っちゃえばOK、ということを経験的に 学びました。特に車輪の再実装をしてる時は。今の自分ならな

  • スタックマシンで学ぶ template expression - w_o’s diary

    例は考えてあったんだった。template expressionを使えるようになりましょうという話。 template expressionが使えるようになれば、今日からあなたも大量のエラーメッセージとお友達になれること間違いなし! (ネタ以外に、boost::lambdaのエラーメッセージが読めるようになるとかの効果があるかもしれん) もうちょっとまともなのを読みたい人は http://homepage1.nifty.com/herumi/prog/prog81.html こちらのほうがよいかと思いますよ。 emit_bytecode( ( x + y + 3 ) )とかやると、 LOAD_VAR 0xnnnnn LOAD_VAR 0xnnnnn ADD LOAD_CONST 3 ADDとかって出力されるプログラムを作ってみ…と見せかけて、実際には無理なのでちょっと妥協して、 emit_

    スタックマシンで学ぶ template expression - w_o’s diary