タグ

c++に関するteppochanのブックマーク (27)

  • C++マニアック,よくわかるC++言語プログラミング講座

    What's new 2008/06/30 Google 検索窓をつけてみました。 2008/06/14 身長や体重など複数の基準でソートする例 を追記。 2008/06/14 英文字文書を読んで、文字数の頻度順にソートする例 を追記。 古い What's new 当サイトで提示するサンプルコードは、あまりにも単純明快で、一見つまらないぐらいに見えるはずです。しかし、もしあなたがそう感じたのであれば、それは、ねらいどおりで、大成功と言えます。ちょっと難解と思われている C++ が、つまらなく見えるほど平易に解説されているということですから。 基礎(入門)編 その他(非 C++ 的) エッセー C++ はアセンブリ言語のように軽快であるにもかかわらず、仮想クラスやクラスの継承、オペレータのオーバーロード、そして、テンプレートと、高級言語のプログラミングテクニックを余すところなく駆使で

  • 自分用コーディング標準(C++)

    [ C++で開発 ] 自分用コーディング標準(C++) C++コーディング標準はいくつかありますが、どうもピンとくるのがないので良いとこ取りで自分用コーディング標準をまとめます。 スタイル編 ファイル構成 C++は、マルチパラダイム言語です。オブジェクト指向プログラミングを中心に据える場合はクラスが構成要素の中核となりますが、ジェネリックス(テンプレート)プログラミングを中心に据える場合はテンプレート集が構成要素の中核となります。もちろん構造化プログラミングを中心に据える場合はフリー関数が構成要素の中核となります。 クラス中心方式を採用する場合 主にオブジェクト指向プログラミングを行う場合のファイル構成法です。 1クラスを1対のファイル(ヘッダーファイルおよびソースファイル)に記述する あるクラス内でしか利用しないクラスは、内部クラスにしてもよい ファイル名は、クラス名を基幹名(basen

  • C/C++

     超初心者のプログラム入門(C/C++) 前田稔(Maeda Minoru)の C/C++ 入門のページです。 格的にプログラムを勉強するとなると、何と言ってもC言語(C++)でしょう。 Console Mode & Windows Mode & Game Program も掲載しています。 (^_^; 前田稔の超初心者のプログラム入門 C/C++ index C/C++/CLI 紹介 UnManeged Mode C言語(UnManeged Mode)の基 Program Select 昔懐かしい汎用コンピュータ & MS*DOS時代の面白そうなプログラムを拾い出してみました。 構造体 構造体の代わりにクラスを使う方法がお勧めです。 Object Class Object Class 演習 ワイドキャラクタ(unicode) Task の基 Program Note 古くから使わ

  • インラインアセンブラ - 周回遅れのブルース

    先日のわんくま勉強会でアセンブラのセッションがありましたが、たいへん興味深く見させてもらいました。 アセンブラは触り程度にしか判らないのですが、久々にアセンブラの話しを聞いて思い出したのが、 Delphi-ML の以下のスレッド。わたしのレスもしっかり残ってますね(汗 【Delphi-ML:49205】文字列の置換速度について 10年ほど前のスレッドですが、このスレッドで始めてインラインアセンブラコードを見た時の驚きは忘れられません。 今も ML にいるか判りませんが、このコードを書いた pcode 氏には尊敬の念を抱いたものです。以下、pcode 氏が書いたコードの改造版です。 procedure CharReplace( var S: string; const Old, New: Char ); var ConvTbl : array[char] of char; var ch :

    インラインアセンブラ - 周回遅れのブルース
  • fam.cx

    This domain may be for sale!

  • 今すぐ使える C++ コーディングテクニック集 - torus711 のアレ

    前置き これは、Competitive Programming Advent Calendar Div2013, 第 5 日の記事です。 記事の内容はタイトルの通り、アルゴリズムではなくコーディング自体に関するテクニック集です。(おそらく)競技プログラミング界隈ではこういった知識についてのまとまった資料が少なく、他の参加者のコードを見て盗まなければならないというのが現状だと思います。当ブログでも、テクニカルな書き方をしたコードを特に説明せずに掲載しているので、わたしがよく使っているものをまとめてみようと思いました。 この記事の内容を実践することで、例えば次のような効果があります。(個人の感想です) コード量が減少し、すっきりまとまったコードになってうれしい コードの意味が分かりやすくなり、デバッグしやすくなってうれしい Challenge / Hack の際に変なコードでも読めるようになっ

    今すぐ使える C++ コーディングテクニック集 - torus711 のアレ
  • C++11 スマートポインタの話 - ここは匣

    C++にはガーベジコレクタが言語的には存在しないので、動的に確保したオブジェクトのメモリの管理はプログラマが責任を持って管理しなければ、メモリリーク・リソースリークなどの問題を生じてしまいます。 今時のプログラマはこうした問題を引き起こすリスクを減らす為に、記述ミスの起こりやすい生のポインタを使い自力でnewとdeleteを記述する事を避けて、安全なスマートポインタ、即ちオブジェクトの寿命により自動的にメモリ解放を行う便利なポインタを利用するべきです。 しかし、スマートポインタと言っても種類が幾つかあり、落とし穴も存在するのでどういった状況でどれを利用するのが良いのかを考察してみます。 Dynamic memory managementを見てみても C++11から随分増えていますね http://en.cppreference.com/w/cpp/memory std::auto_ptr

    C++11 スマートポインタの話 - ここは匣
  • ゲームプログラミングにおけるC++の都市伝説 - ソフトウエア研究会in秋葉原 - PukiWiki

    ゲームプログラミングにおけるC++の都市伝説 † この記事は、C++ Advent Calendar 2012 22日目の記事です。 Prev 21日目の記事 CEANによる配列操作 Next 23日目の記事 構造化並列プログラミング 時間の関係で3つの都市伝説しかご紹介できませんでしたが、またの機会があれば他の都市伝説についてもお話したいと思います。 2012/12/22 written by h.godai @hgodai 目次 初めに 都市伝説1 C++は遅いのでゲームには向いていない 都市伝説2 boost::poolはゲームには向いていない 都市伝説3 boostライブラリは怪しいライブラリだ。使うと呪われる。 ↑ 初めに † かつて、8bit時代はゲームのプログラムはアセンブラが主流でした。やがて、ゲームのプラットフォームが16bitから32bitになるに従い、C言語でゲーム

  • Moonmile Solutions Blog | ソフトウェア開発者のためのブログ

    「紙飛行機を飛ばす、あれ?今、馬鹿にしませんでしたか?」 「・・・、いえ」 いや、実際、馬鹿にしてしまった。というか、紙飛行機。一体どこがこのITプロジェクトに関係しているのだろうか、とドリーは思わざるを得なかった。馬鹿にする、というよりもソフトウェア開発のプロジェクトで『紙飛行機を作る』というのはどういう目標だろうか?なにか、ITに関係があるのだろうか? 「いや、無理もないです。紙飛行機なんって誰でも作れるもの。誰でも飛ばせるものと思うじゃないですか。10歳の子供が、いや幼稚園児だって紙飛行機ぐらい作って飛ばせるようなものです。飛ぶ原理はわからなくても、折り紙を折ってロケット型にしてぴゅーと飛ばすとか、イカ型の紙飛行機とか絵にでも載っているじゃないですか。それを真似たら、誰でも作れる紙飛行機。そう、誰もが作れるのに、このプロジェクトで作るのに意味はあるのか?という疑問ですよね。当然です

  • [win8] C++/CLI と C++/CX の違い | Moonmile Solutions Blog

    Microsoft 社の公式見解は、何処かにある(?)と思うので、私のほうで Visual Studio 11 beta を1か月程触った感じで言いますと、 「C++/CX って、C++/CLI の後継でも何でもないやんッ!!! まったく別物じゃ」 「C++/CX って、metro アプリケーションは作れるけれど、desktop アプリは作れないじゃんッ!!!」 「C++/CLI って、metro アプリが作れないどころか、WPF アプリも相変わらず作れないじゃんッ!!!」 「C++/CX って、WinRT を扱えるけど、.NET Framework を扱えないじゃん、つーか、C++ の世界に戻らないとだめじゃんッ!!!」 「そもそも、C++/CX と C++/CLI って混在できないじゃんッ!!!」 ってな具合で、憤懣ひとしきりなんですよ。というわけで、ちょっと以下に戯言を。 希望/期待

  • vimrc を整理した - C++でゲームプログラミング

    Vim を始めた頃から無駄に機能ごとにファイル分割をして、ごちゃごちゃになっていた vimrc をこの機会にちょっと整理してみました。 1つのファイルに全部まとめたので行数は長くなったのですが、使ってなかった設定や quickrun.vim 回りの設定を見直したのでだいぶすっきりとしました。 Vim の折りたたみ機能を初めて使ってみましたがなかなか便利ですね。 C++ 回りの設定はまだちょっとごちゃごちゃしているのでもうちょっと見なおす必要がありそうですが、しばらくはこのままちょっと試してみたいと思います。 年に1回ぐらいこんな感じで vimrc を見なおしてみるのもいいですね。 次は OS 間でも問題なく使用できるようにしたい。 で、現状の vimrc とかを見たい人は続きからどうぞ。 半端無く長いです。 ちなみにわたしは全て Dropbox でソースコードの管理をしているので gith

    vimrc を整理した - C++でゲームプログラミング
  • マルウェア「Duqu」は未知の言語で開発された? | スラド デベロッパー

    Internet Watchの記事「国家によるサイバー戦争は新局面に? メディア報道の動きや謎の言語の発見」に興味深い一文があった。記事内容としては、国家ぐるみでのサイバー攻撃が増えているというものなのだが、Kasperskyが「Duqu」というマルウェアを調査したところ、どのようなプログラミング言語で実装されたのかまったく特定できなかったというのだ。 このほか3月8日には、Stuxnetの亜種と考えられているマルウェア「Duqu」に関し、ロシアのKaspersky Labsが奇妙な知見をもたらした。同社では「数え切れないほどの時間を費やしてもなお、Duquが開発されたプログラミング言語を全く特定できない」とし、世界中の研究者に援助を求め、ブログにその分析内容を公開した。 該当のブログによると、Duquのコードが格納されているDLLにはC++のラインタイムライブラリやSTLの関数が含まれて

  • ゲーム開発とSTL - とあるぼっちの生存報告

    コンシューマ向けゲーム開発に携わって結構な年数が経過しました。 これまでは恵まれていたのか、STLを使える環境にいた*1ので特に気にしていなかったのですが、どうやら場所によってはSTLはゲーム開発向きではないらしく使用を禁止される事もあるようです。 おかしいですね。私、STL使ってコンシューマ向けのゲーム作ってきましたけど。 確かにSTLはその特性と使用方法を知らないと痛い目にあいます。特にコンシューマ機のメインメモリ容量はPCに比べて圧倒的に少ないです。その少ないメインメモリ上に実行バイナリやヒープ領域などを展開しなければなりません。メモリ管理に対してシビアになるのは当然で、templateは使用方法によってはバイナリサイズが増大するので使用をある程度制限する事は仕方ありません。 また、std::listや、std::map等は使えば使う程内部でメモリを平然と分断してくれるので、ヒープ領

    ゲーム開発とSTL - とあるぼっちの生存報告
  • Effective C++やC++11やテンプレートを教えてみた。 - krustf の雑記

    某研究室の院生の人に飲み会の席で冗談混じりに「教えて」とか言われたので、試しにやってみました。 CやJavaを学んだ+テンプレートは型Tをfloatやdoubleに置き換えて使っている程度ということだったので、まあEffective C++とかC++11とかテンプレートのテクニック的な話だとかでいいかと思いつつそんなスライドを書きました。 ところどころ端折ってたり、説明が足りない、間違っているがあるかも知れない。多分大丈夫。色付けはいくつか忘れている。 C++11 (他) 入門 View more presentations from krustf [誤字報告] 2012/02/18 "default and deleted function" → "defaulted and deleted functions" ideone C++0xモード便利です。当に。 今回説明しなかったけど説

    Effective C++やC++11やテンプレートを教えてみた。 - krustf の雑記
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • C++0xが国際標準C++11へ。 - Faith and Brave - C++で遊ぼう

    cppllとboostjpに送ったメールですが、こちらにも再掲します: == ついに ねんがんの 国際標準をてにいれたぞ!: C++0x、全会一致で承認される C++0xが満場一致で国際標準として承認されました。 やりました! 日からも全員が賛成票を出していました。 さて、C++11の仕様が固まってこれから大きな変更はないでしょうから、 そろそろC++11の解説サイトやリファレンスを整備していかなくてはいけません。 cppll, boostjpのコミュニティで集合知としてのリファレンスサイトを作っていきたいと考えています。 私の方でGoogle Sitesのcpprefjpを作成し進めているのですが、人手不足でなかなか進んでいない状況です。 cpprefjp - C++語リファレンス この活動に興味を持ち、コアメンバとなってくれる方を募集しています。 C++11が広く使われて欲しいと

    C++0xが国際標準C++11へ。 - Faith and Brave - C++で遊ぼう
    teppochan
    teppochan 2011/08/15
    素晴らしい。
  • 「ソートも、サーチも、あるんだよ」 ~標準C++ライブラリにみるアルゴリズムの面白さ

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「ソートも、サーチも、あるんだよ」 ~標準C++ライブラリにみるアルゴリズムの面白さ
  • DLLからDLLを呼ぶのはこんなに難しい - kawanon

    DLLの検索パスなんて普通は意識する必要ありません。実行ファイルと同じディレクトリに置いておけばちゃんと読み込んでくれます。しかし、あなたが実行ファイルではなくDLLを開発している場合はちょっと注意が必要です。 今私たちは master.dll を開発しているとします。このDLLは何か別のアプリから使ってもらうための汎用的なライブラリです。例として rundll32.exe から呼び出されるものとしましょう。slave.dll は master.dll が依存している別のライブラリです。 この2つのDLLを同じディレクトリに置いて rundll32.exe から呼び出すとどうなるでしょうか? rundll32 C:\temp\master.dll,Test 結論から言って以下のようになります。 [Win32] LoadLibrary のサーチパス 「Hoge.dll が見つからなかったため

    DLLからDLLを呼ぶのはこんなに難しい - kawanon
    teppochan
    teppochan 2011/08/01
    そうなのかー
  • シェルによるファイルコピー - Cube Lilac

    シェルによるファイルコピーで嵌ったのでメモ. Win32 API でファイルのコピーを行う方法として,CopyFile() の他にシェルを利用すると言うものがあります.今回 CopyFile() を使用せずにシェルの機能を利用した理由は,「コピーに長い時間を要する際にプログレスバーを表示してくれるから」と言うものでした. シェルによるコピー自体は,SHFILEOPSTRUCT 構造体に情報を設定して SHFileOperation() を実行するだけなのですが,最初にこれを実行したとき何故かエラーが発生してうまくいきませんでした.何故かなぁと思ってリファレンスを読んでいると,以下の一文を見つけました. Important You must ensure that the source and destination paths are double-null terminated. A n

    シェルによるファイルコピー - Cube Lilac
  • コントロールのサブクラス化 - Cube Lilac

    しばらくブログはお休みモード.今,TreeView を持つアプリを書いているのですが,TreeView のアイテムの名前を変更しようとしたときに,Enter キーを押すと OK ボタンにフォーカスを奪われてしまい意図した動きにならない(「名前の変更」の終了ではなく,ダイアログ自体が終了しています)と言う問題が発生しました. この問題をどうやって回避するのかなぁと Web を漁っていると,どうやら「コントロールのサブクラス化」と呼ばれる方法で回避するようです. static WNDPROC DefaultTreeViewEditProc; // サブクラス化する前のデフォルトのウィンドウプロシージャ static LRESULT CALLBACK TreeViewEditProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { swi

    コントロールのサブクラス化 - Cube Lilac