ブックマーク / cpplover.blogspot.com (5)

  • 本の虫: 邪悪なC形式のキャストにしかできないこと

    注意:邪悪で汚らわしいC形式のキャストは、いやしくもC++プログラマたる者は、使うべからず C++では、玉虫色のC形式のキャストの機能を、三つに分割した。static_cast、reinterpret_cast、const_castである。しかし、この三種のキャストでは、C形式のキャストを完全に代替できないという声をよく聞く。曰く、「どうしても書けないキャストがある」と。 それはよく聞く話だが、では実際にどのようなキャストなのかということは、誰も審らかにしない。誰も知らないキャストであれば、特に使えなくても問題ないはずだ。ただし、「C形式のキャストならばできるキャストが、新しいキャストを組み合わせてもできない。どんなキャストかは知らないが、とにかくできないと聞いている。故に新しいキャストはクソだ」などという論調で、C++の改良されたキャストを使わぬC畑の外道がしゃしゃり出てくるのも困る。そ

    DOSEI
    DOSEI 2010/10/23
  • 本の虫: QuirksBlog: HTML5のドラッグ&ドロップはクソだ

    QuirksBlog: The HTML5 drag and drop disaster QuirksBlogで有名なPeter-Paul Kochさんが、HTML5のドラッグ&ドロップに関して、酷くののしっている。かなり好い文章で、興味深かったので翻訳してみた。記事が長いので、blockquoteを使うのは御免を被る。 一日半もテストして、HTML5 drag and drop moduleはクソなばかりか、ゲロみてえな臭いがプンプンするってことが、いやというほど分かったね。 コイツはHTML5規格から、ソッコーで消すべきだし、もっとまともな規格が制定されるまでは、現行ブラウザは、この機能を、一刻も早く無効にするべきだ。 Web開発者は、HTML5のドラッグ&ドロップを使うな。絶対使うな。RFC2119で規定されているMUST NOTの意味で使うな。使いたきゃ、従来通りのスクリプトで実装

  • 本の虫: DOM level 3のマウスイベントにおけるカーソル位置の詳細

    マウスイベントは、DOM level 3で定義されている。問題は、規格の定義が曖昧で、ブラウザの実装が救いがたいぐらい異なっているということだ。ここでは、マウスの位置を取得する方法を、完璧に解説しようと思う。とくに、canvasを使うにあたっては、マウスカーソルの位置を取得することは重要だ。 座標とは何か ここで私の言う座標とは、ある点を(0,0)と置いた場合の、その点からの位置(x,y)のことである。ただし、右下が正になる。これはコンピューターの世界では、一般的な座標系である。では、その基準となるべき「ある点」とはどこか。これが問題である。 次のようなコードを考える。 var mouse_event_listener = { handleEvent : function(event) { //ここにコードが記述される } } ; これは、DOM level 3 Eventに準拠するイベン

  • deleted定義

    Twitter / digitalghostの妹: int f(int); int f(double) ... おお! void f( int ) {} void f( double ) = delete ; int main() { f(0) ; // OK f(1.0) ;// error } これはすごい。いままでまったく気がつかなかった。よく見たら、deleteは、Deleted definitionsという名前であった。Explicitly-defaulted functionsとは、名前からして明確に異なるのである。素晴らしいことに、deleted定義を指定できる関数に、制限はない。つまり、メンバー関数である必要すらない。 なぜ、いままでメンバー関数にしか使えないという思い込みをしていたのだろう。これは素晴らしい。 ちなみに、こういうこともできる。 void f( int )

    DOSEI
    DOSEI 2010/04/27
  • 本の虫: oldnewthing: WIN32_LEAN_AND_MEANの由来

    The Old New Thing : Where did WIN32_LEAN_AND_MEAN come from? asdfはWIN32_LEAN_AND_MEANの由来が疑問であるようだ。 WIN32_LEAN_AND_MEANシンボルは、Windows 95時代に、windows.hをincludeした際、多くのヘッダファイルを省略する目的で導入された。windows.hを覗けば、どのファイルが省略されるのかが分かる。 このシンボルは16-bit Windowsから32-bit Windowsへの移行の一環として、追加されたものである。16bitwindows.hは、多くのヘッダファイルをincludeしておらず、WIN32_LEAN_AND_MEANを定義することによって、16bit Windowsの、Windows プログラムを書くに当たって最小限のヘッダという思想を、取り

  • 1