タグ

ブックマーク / 0xcc.net (3)

  • いやなブログ: C のテンプレートでダックタイピング

    C++ のテンプレートでダックタイピング RubyPython などの動的な言語では、ダックタイピング (duck typing) というテクニックが多用されています。 ダックタイピングは、同じインタフェースさえ備えていれば型は何でも構わない、という考え方に基づく多態 (polymorphism) の手法です。アヒルのように見えて、アヒルのように鳴くなら、アヒルに違いない、というわけです。 そして、現在最も注目を浴びている言語である C++ でもテンプレートを用いるとダックタイピングを行えます。 ダックタイピングを使うと、継承関係を無視して多態的にオブジェクトのメソッドを呼び出せます。たとえば、次の Ruby のコードでは、func に Duck と Foo のどちらのオブジェクトを渡しても正常に動作します。これは Duck, Foo ともに、共通のインタフェースを持つ quack

    minus9d
    minus9d 2020/10/03
  • bkノート

    Google+に書いていたエッセイのアーカイブです。 すぐ置き換わるから大丈夫 #62 TeXの思い出 #61 Welcome to the industry! #60 ビルドという名のトンネル #59 キーボードを替えた話 #58 テストを実行するとログインシェルから追い出される問題 #57 シークレットストーリー #56 ドットコムバブルの思い出 #55 コミュニケーション能力とは何ぞや #54 メールで時間を無駄にしない方法 #53 パッチの数え方 #52 zipファイル中毒 #51 はじめてのIPv6 #50 最近の毛刈り #49 練習してもっと速くやるべし! #48 忍耐力指向プログラミング (Patience Oriented Programming) #47 VPNの謎 #46 ウェブプログラマへの道 #45 プログラムの見通しをよくする方法 #44 パイプがなぜか詰まってし

  • いやなブログ: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか 通常、Linux の共有ライブラリを作るときは各 .c ファイルを PIC (Position Independent Code) となるようコンパイルします。しかし、実は PIC でコンパイルしなくても共有ライブラリは作れます。それでは PIC にする意味はあるのでしょうか。 さっそく実験してみます。 int func () { printf(""); printf(""); printf(""); } PIC でコンパイルするには gcc に -fpic または -fPIC を渡します。-fpic の方が小さく高速なコードを生成する可能性がありますが、プロセッサによっては -fpic で生成できる GOT (Global Offset Table) のサイズに制限があります。一方、-fPIC はどのプロセッサで

    minus9d
    minus9d 2012/07/14
  • 1