タグ

c++に関するvoidy21のブックマーク (147)

  • EffectiveC++入門

    C++プログラマにとって、『Effective C++』はバイブルのような存在です。どれくらいバイブルかというと、皆さんの使っているGNUのGCCコンパイラには、EffectiveC++のコーディングガイドラインに従っているかどうかチェックするためのコンパイラオプション『-Weffc++』が、あるくらいです。 しかし、その内容は決して初心者向きではなく、実際に買ったはいいが、書棚の肥やしになっているような人たちも多いと思います。そこで、そのような初心者の人たちに EffectiveC++ を読み解くために各章のエッセンスをまとめたガイドラインを書いてみました。 C++はもう時代遅れとよく言われますが、組み込み系からビジネスシステムまで、幅広くカバーできる言語は、C++以外にありません。C++を知っていれば、おそらくどのような業界にも通用するでしょう。ITプログラマを自負するのであれば、C+

    voidy21
    voidy21 2010/12/09
  • [windows]HWND←→CWndの変換 - octech

    とある仕事のための機材として購入していたZOOM H4を使ってみた。 RECボタンを一度押すと、録音待機モード、 録音待機モードからRECボタンを押すと、録音開始、 録音中にRECボタンを押すと、録音停止。 これだけでほとんど問題ない。 で、マンションの屋上に上がって、録音してみた。 Nikon D50で、風景を撮影。 部屋に戻って、適当にムービー化し、これまた初めてYouTubeにアップしてみた。 フィールドレコーディングをしていると、環境音が気になりはじめる。しばらく目を閉じたまま耳をすますと「あ、これは遠くの電車の音だ」「あれ、鳥の声とか聞こえるんだ」みたいな感じで、自然とノイズを分析しはじめていて、なかなか面白い。 人間の脳は、視覚情報が多くを語らないと、音に情報を求めるのかもしれません。 フィールドレコーディング、面白い趣味になりそうです。 ウィンドウのハンドルと、CWndオブジ

    [windows]HWND←→CWndの変換 - octech
    voidy21
    voidy21 2010/12/08
  • ビデオ入力デバイス名を取得する:Geekなぺーじ

    ここでは、ビデオカメラ(デスクトップカメラ、DVカメラなど)やTVチューナーデバイスの名前を取得する方法を説明したいと思います。 (注意)ここの例では、サンプルを簡潔にするためにエラー処理を書いていません。 とりあえず、コードを書いてみる まず、何も考えずに以下のコードを書いてみましょう。 このコードは、発見したビデオ入力デバイスのFriendlyNameを一つずつ表示します。 例えば、一番最初に発見したビデオキャプチャデバイスがDVカメラであった場合、MessageBoxで「Microsoft DV Camera and VCR」と表示されます。 #include <stdio.h> #include <dshow.h> int main() { // 補足情報)英単語の日語訳 // Enumerate : 列挙、一覧 // Moniker : あだ名 ICreateDevEnum *

    voidy21
    voidy21 2010/12/06
  • ビデオ入力デバイスからの映像を表示する:Geekなぺーじ

    ここでは、ビデオカメラ(デスクトップカメラ、DVカメラなど)やTVチューナーデバイスからの映像を再生する方法を説明したいと思います。 (注意)ここの例では、サンプルを簡潔にするためにエラー処理を書いていません。 とりあえず、コードを書いてみる まず、何も考えずに以下のコードを書いてみましょう。 このコードは、最初に発見したビデオ入力デバイスを再生します。 例えば、一番最初に発見したビデオキャプチャデバイスがアナログのテレビチューナーデバイスであった場合、テレビ映像が再生されます。 ビデオカメラを一番最初に発見した場合にはビデオカメラからの映像が再生されます。 DirectShowでは、映像入力デバイスは全て抽象化してあります。 抽象化された映像入力デバイスには「あだ名」がつけられ、その「あだ名」を使ってデバイスの選択は行われます。 映像入力デバイスの抽象化はICreateEnum、IEnu

    voidy21
    voidy21 2010/12/06
  • C++でnode.jsのaddonを書いてみた - tail -f bongole.current.log

    addonを書く上で必要なことは基ここに書いてあるんだけど今のバージョン(v0.23)だと若干便利マクロが増えてるみたい。 今回は渡された文字列とカウンタを表示するだけの簡単なクラスを作った。 JavaScriptのmoduleで書くとこんな感じ function Echo(){ this.i = 0 } Echo.prototype.print = function(s){ console.log( s + ' ' + this.i ); this.i++; } exports.Echo = Echo;同じことをC++のaddonで書くと以下のような感じ ※重要そうなところはコメントで。 echo.h: #ifndef _ECHO_ #define _ECHO_ #include <node.h> #include <v8.h> using namespace v8; using na

    C++でnode.jsのaddonを書いてみた - tail -f bongole.current.log
    voidy21
    voidy21 2010/10/23
  • C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    ある程度大きな C++ のコードを書いたことがある人なら大抵はこの問題について考えますよね。まして Boost なんて使っていた日には「コンパイル時間が Boost される」とか言われる訳です。 コンパイル時間を活用してコーヒー入れたりトイレ行ったりブラウジングしたり Twitter に「リビルドなう」とか Post したりといった素晴らしい方法もありますが、ここではビルド時間を短縮する方法を考えていきます。 事前知識 多分どこでも言われてることだと思いますし、結構適当に書いてるので読み飛ばしてもいいと思います。 コンパイルが遅い原因 C++ のコンパイル時間の多くは、プリプロセッサにあります。プリプロセス時に行われる include やマクロの展開でかなり多くの時間を取っています。 きっと Boost.PP なんて使っていた日には「コンパイル時間が Booooooooooooooooos

    C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
    voidy21
    voidy21 2010/10/23
  • 例外の実装

    d金魚 @studiokingyo C++のthrowやtry catchって関数に入っていくとき無駄なオーバーヘッドあるから使いたくないってのを見たことある。やはり時代は戻り値である。(アナクロ!アナクロ!アナクロ!) 2010-08-01 14:01:36

    例外の実装
    voidy21
    voidy21 2010/08/01
  • プログラミングの魔導書 / Vol.1 Construct the World, C++ - Pixel Pedals of Tomakomai

    プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 「Construct the World, C++」献感謝です! 書は id:faith_and_brave さんもおっしゃっているように、不定期刊行のプログラミング雑誌の創刊号です。今号のテーマはC++ですが、その充実っぷりはかなりのもの。 名立たるC++ブロガーに加えて、C++標準化委員会のメンバ複数名が筆をとっている時点で大変価値のある内容と言えますが、なんと冒頭には Bjarne Stroustrup 氏の独占インタビューまで掲載されています。これを読むためだけに買っても価値があるのではないでしょうか。 個人的に(≒C++の素人的に)面白かったのは稲葉一浩さんの Hello, C++ World! で、これは同名のブログエントリをベースにした記事ですが、解説の密度がまったく違います。Hello,

    プログラミングの魔導書 / Vol.1 Construct the World, C++ - Pixel Pedals of Tomakomai
  • C++の話(本当にあった怖い話)

    The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr

    C++の話(本当にあった怖い話)
  • いやなブログ: C のテンプレートでダックタイピング

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

    voidy21
    voidy21 2010/06/21
  • 静的型付け言語におけるダックタイピング (Type Erasure) - Cube Lilac

    第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性 - bingo_nakanishiの他言語出身者のためのPerl入門 を読んで、「静的な型付け言語もやればできる子なんです」と言うところを少しは見せる事ができればと、今さらなネタですが書き起こしてみました。ただし、ジェネリックに対応した言語である必要があります。 元の記事では Java でしたが、Java の環境がなかったので C++ で記述しています。JavaJava 5.0 以降(?)からジェネリックを取り入れたらしいので大きな違いはないと思います。 前置き いま、このようにhumanがtouchすると、おのおのの動物が鳴くソースを書いてみる。duck(アヒル)はhuman(人間)に触られると「ガーガー」と鳴き、dog (犬)はhuman(人間)に触れると「ワンワン」と鳴くとする。 第127回 R

    静的型付け言語におけるダックタイピング (Type Erasure) - Cube Lilac
    voidy21
    voidy21 2010/06/21
  • C++ code by uskz - 11 lines - codepad

    #include <cstdlib> #include <iostream> struct Hello { Hello() { std::cout << "hello" << std::endl; std::exit(0); } } main;

    voidy21
    voidy21 2010/05/21
  • volatile参照渡しとvolatileメンバ関数と戻り値にvolatileを付けることの意義? - 名古屋313の日記

    C++ | 11:24コンパイラ先生は優秀で、NRVOという最適化をしてくれることがあります。この最適化を施してくれると次のようなコードにおいて、 #include class Hoge { public: Hoge() : val_(0) { std::cout "コンストラクト" const Hoge &rhs) : val_(rhs.val_) { std::cout "コピーコンストラクト" "デストラクト" void setVal(int val) { val_ = val; } int val() const { return val_; } private: int val_; }; Hoge createHoge() { Hoge hoge; hoge.setVal(256); return hoge; } int main() { Hoge hoge(createHog

    voidy21
    voidy21 2010/05/15
  • AndroidをC++のSTLで開発する | Techfirm Android Lab

    みなさんこんにちは 今までAndroid NDKを使用してAndroidアプリをC言語やC++で開発できることを紹介してきました。ここではもう一歩踏み込み、C++のSTLが使用できるか試してみたいと思います。 STLについては以下を参考にしてください。 http://ja.wikipedia.org/wiki/Standard_Template_Library 今回はSTLportを使用したいと思います。Android用にカスタマイズされたSTLportが開発されたためです。これは標準のSTLに比べ効率的で、スレッドセーフで標準には含まれていないハッシュマップなども使用できます。 ではいってみましょう。 以下の手順です。 1、gitをインストール tarポールには現時点ではandroidに対応したものが含まれていないのでgitでインストールします。そのうちtarポールにも入っているよ

  • Camp Vermont

    Add to Cart Produk ini tidak dapat dibeli karena bermasalah. Silahkan hubungi kami. Dalam dunia perjudian online, slot gacor menjadi salah satu permainan paling populer yang digemari oleh berbagai kalangan. Dengan mekanisme sederhana dan peluang menang besar, slot kerap menjadi pilihan utama bagi pemain baru maupun berpengalaman. Salah satu platform yang sedang naik daun dan menarik perhatian para

  • C++0x ラムダから関数ポインタへの暗黙の変換 - Faith and Brave - C++で遊ぼう

    ラムダ式によって生成される関数オブジェクトを、同じシグネチャを持つ関数ポインタへ変換できるようになります。 Windows APIやOpenGLのようなCライブラリとの互換性のための機能ですね。 #include <GL/gl.h> #include <GL/glut.h> int main(int argc, char* argv[]) { glutInit(&argc, argv); glutCreateWindow("Title"); glutDisplayFunc([]{ glClear(GL_COLOR_BUFFER_BIT); glColor3d(1.0, 0.0, 0.0); glBegin(GL_POLYGON); glVertex2d(-0.5, -0.5); glVertex2d(0.5, -0.5); glVertex2d(0.5, 0.5); glVertex2d(

    C++0x ラムダから関数ポインタへの暗黙の変換 - Faith and Brave - C++で遊ぼう
    voidy21
    voidy21 2010/04/16
  • windows.hのmin/max対策 - Faith and Brave - C++で遊ぼう

    にあったので。 #include <iostream> #include <windows.h> #include <algorithm> int main() { // std::cout << std::min(1, 2) << std::endl; // NG std::cout << (std::min)(1, 2) << std::endl; // OK }

    windows.hのmin/max対策 - Faith and Brave - C++で遊ぼう
    voidy21
    voidy21 2010/04/13
  • C++/CLIについてのよくある誤解 - デ-mk6

    以前にも書いたような気がしますが、もう一度書きます。C++/CLI(仕様の邦訳)は、.netからC++やその他ネイティブコードのライブラリを楽に使えるようにするためと、そのための作業を楽に行うための言語です。「.netで使えるC++」ではありません。そういうことを言う人は悉くこの言語の厳つい顎で頭を砕かれ、手足をもがれて、腸をらい千切られ死にます。それが摂理なのです。あらがえません。C++/CLIは大きく分けてC++と、C++風構文を持つ何か.netっぽい言語(ここでは仮に「Cヰ」と呼びましょう)からなる、キメラです。二つの言語のコードは一つのファイルに混ぜて書くことができます。C++の部分はそのままC++です。何も違いはありません。GCもありません。ありませんが.netのGCにネイティブオブジェクト(要するにC++で作ったオブジェクト)を通知して管理させる方法はあります。interfa

    C++/CLIについてのよくある誤解 - デ-mk6
    voidy21
    voidy21 2010/04/13
  • http://japan.internet.com/developer/20100402/26.html

  • C++についてLinus Torvaldsへの反論 | taro-nishinoの日記 | スラド

    私が以前に書いた"「構造化プログラミングに関する覚え書き」へと導いたもの"の前置きで、Linus氏がC++をぼろくそに貶したことに対する日人の反応を辛辣に書きました。そのことで私の真意を誤解している人が少なからずいらっしゃいます。要は私が言いたかったのはLinus氏に反論するなら反論するで、世界に向けて英語で書き、Linus氏が目にするようにせよと言いたかったのです。それをせずに日国内でぶつぶつ言っても、それは所詮国内向けポーズでしかなく、自己愛に満ちているとしか言い様がないのです。私の愛国精神云々とかは全く関係ございませんし、恥ずかしいものは国を問わず恥ずかしいのです。勿論英語の壁があるでしょうし、もっと重要なのはLinus氏並の実績でしょう。英語も駄目で実績も無いなら言うな、です。 それに引き換え、海外に目を転ずると、堂々と反論している人が(英語ネーティブでなくても)何人もいます。

    voidy21
    voidy21 2010/04/13