タグ

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

  • C++よりもC#でゲームを作るとよい8の理由と、悪いほうの8つの理由 - 【長剣は】最強武器候補【鈍器です】

    C#注:この記事でのC#は.NET Framework 3.5を、C++はVisual Studio 6.0を想定しています。最新のC++だと改善されているかもしれませんが、ゲーマー界隈で10年ぐらい保守してるプロジェクトのあとに作ったあとに選ばれるC++コンパイラもまたVS6.0あたりだということでお察しください。1、enumが便利C++の場合、enumで宣言されたものはグローバルなシンボルになりますが、C#では型名を必要とするためにローカルなシンボルになります。 // C++ enum SWORD { SWORD_LONG, SWORD_SHORT, }; // C# enum Sword { Long, // Sword.Long と使う Short, }; さらに、Enum.Parse() を使うことで、文字列からenumへの変換もでき、Sword.Long.ToString()

    voidy21
    voidy21 2009/12/14
  • はてなブログ | 無料ブログを作成しよう

    南のアワアワと北のグツグツ② ~デリーの早朝・インド 泡は、あればあるほど望ましい――。 演奏中のギタリストのような、寡黙な後ろ姿。シンとした中で「ジャボジャボ」だけが躍り響き、…まるで、ホースからの水を直撃されて飛沫を跳ね散らかしている――或いは、水の中にダイビングする自分の姿—―なんて想像で遊ぶのは、それ…

    はてなブログ | 無料ブログを作成しよう
  • TopCoderから学ぶ美しいマクロや型宣言 C++ - peroon's diary

    TopCoderというプログラミングコンテストで 他人のコードから発見した、美しいマクロや 型宣言を紹介します。 これを導入することで、C++のコードが短くなり、 早くコーディングすることができます。 ※すべてのTopCoder参加者がマクロなどをテンプレートと して用意しているわけではありません。 マクロなどを定義している人は半分より少ないようです。 TopCoderの他人のコードを参考に、 マクロやtypedefによる型宣言をまとめました。 コードの全体はこのようになっています。 (あとで個別にコメントします) //include //------------------------------------------ #include <vector> #include <list> #include <map> #include <set> #include <deque> #in

    TopCoderから学ぶ美しいマクロや型宣言 C++ - peroon's diary
    voidy21
    voidy21 2009/12/01
  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ

    voidy21
    voidy21 2009/11/28
  • 本の虫: C++0xの新しい乱数ライブラリ、random

    注意:最新ドラフトのN3000のrandomの規定は、コンセプトが却下される前の文面であり、今後、変更があると思われる。 C++は標準ライブラリが貧弱であるとは、よく言われることだ。ことに、乱数に関しては、貧弱の極みである。ご存じのように、C++は、Cから標準ライブラリを引き継いでいる。rand()だ。これは、0からRAND_MAXまでの値を返すと規定されている。RAND_MAXは実装によって異なるが、ほとんどの処理系では、32767である。現代の乱数需要を満たすには、あまりにも小さすぎる。 この状況を打破すべく、C++0xには新しい乱数のライブラリが盛り込まれた。randomである。これはBoostの実装を元にしているのだが、Boostとは少し違っている。今回はそのrandomを、浅く触りだけ紹介しようと思う。というのも、ライブラリの細かなメンバ関数の一つ一つまで説明するのは、甚だ冗長で

    voidy21
    voidy21 2009/11/28
  • Amazon.co.jp:Effective C 原著第3版: 本

    Amazon.co.jp:Effective C 原著第3版: 本
  • Amazon.co.jp: C++クラスと継承完全制覇 (標準プログラマーズライブラリ): 矢沢久雄: 本

    Amazon.co.jp: C++クラスと継承完全制覇 (標準プログラマーズライブラリ): 矢沢久雄: 本
  • Amazon.co.jp: C++の設計と進化: 本: ビョーン ストラウストラップ,Bjarne Stroustrup,岩谷 宏,エピステーメ

    Amazon.co.jp: C++の設計と進化: 本: ビョーン ストラウストラップ,Bjarne Stroustrup,岩谷 宏,エピステーメ
  • ちょっとだけマイナーなSTLの話 - d.y.d.

    21:23 09/11/29 ドラクエ3 ドラゴンクエスト III モバイル版 が配信開始されたと聞いてはプレイせずにはいられない、ということで、さっきクリア。 内容は 「SFC版のベタ移植 - すごろく場 + AI戦闘」 ですね。 すごろく場が減った分、限定アイテムが他の場所に移動 (パワーベルト・ドラゴンテイル・ドラゴンローブ・グリンガムのムチが小さなメダル賞品に。 光のドレスがゾーマ城の宝箱に。雷神の剣も宝箱だった気がする。あと、小さなメダルの総数が110枚で変化無しらしいので、 すごろく場にあった分が通常マップに押し出されて、ところてん式に押された炎のブーメランもメダル賞品化)。 不思議なボレロと女神の指輪は見てない。なくなった? AIは、マヌーサ/ラリホー/マホトーン辺りを効く相手にだけ積極的に使ってくれるので参考になる&便利。 勇者もAI駆動にできるモードが欲しかった 細かいと

    voidy21
    voidy21 2009/11/23
  • 今日からできる!Googleコード規約! - peroon's diary

    Google C++スタイルガイド日語訳 を参考にしました。 その中から私が理解したもの、 いいなと思ったものだけを紹介します。 関数の引数の書き方 f(hoge, foo, var)左右の括弧と変数の間にスペースをはさまないこと。 定数にはkを先頭につける const int kDaysInAWeek = 7;何のkだろう?(追記:konstant) クラス名はキャメルケース class HumanBody { ... };ラクダのこぶのように。 メソッド、関数は大文字からはじめる void MyFunction(); 変数名は小文字とアンダーバー float my_variable; 列挙子には大文字とアンダーバー enum color { RED_COLOR, GREEN_COLOR, BLUE_COLOR };この命名法で定数と列挙子も区別している? 定数、メソッド、クラス変数の

    今日からできる!Googleコード規約! - peroon's diary
    voidy21
    voidy21 2009/11/23
  • C/C++セキュアコーディング入門一覧

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

    C/C++セキュアコーディング入門一覧
    voidy21
    voidy21 2009/11/23
  • Boehm GCをC++のスマートポインタっぽく使う話 - kazuhoのメモ置き場

    C++のプログラムを書いててGCを使いたくなるようなケースにぶつかったことは、ここ数年ないんですが、Goの絡みで、そういえばBoehm GCをC++のスマートポインタっぽく使えたら便利なのかな、とか思った。書くとしたら、こんな感じだろうか。 換言するならば、既存のクラスをBoehm GCで管理できる。絶対既出のネタ。 デリファレンスは余計に発生するけど、そもそもGCが必要になるようなデータ構造は少ない(だろう)し、小粒度のデータは自前でメモリ管理すりゃいい(し、難しくもない)ので、この程度で十分かなーと。 追記:あーでも C++0x のクロージャと組み合わせる場合を考えると、デリファレンス回数は減らしたいのかなー。 #include <gc_cpp.h> #include <string> template <typename T> class gc_ptr { struct gc_ptr

    Boehm GCをC++のスマートポインタっぽく使う話 - kazuhoのメモ置き場
    voidy21
    voidy21 2009/11/18
  • 美しきObjective-C

    Objective-Cというプログラミング言語があります。 C言語をベースにオブジェクト指向言語のSmallTalkの拡張を施した言語です。 オブジェクト指向を取り入れたC言語にC++がありますが 根から拡張されているC++と違い Objective-Cは素のままのC言語にSmallTalkを融合させたような形を取ります。 Objective-Cは世界で2番目に美しいGUIを生み出した現AppleComputer社CEOである Steve Jobs氏がNeXTコンピュータのOSであるNeXTSTEPで採用した言語です。 NeXTSTEP自体はPC/AT互換機やHewlett Packard社のHP9000、 Sun Microsystems社のSparcStationにも移植されたようですが、残念ながら私は触れた事がありません。 現在では希にYahoo Auctionに出品されますが、

    voidy21
    voidy21 2009/11/18
    なんだってー >そう、C++のクラス宣言は暴力的で閉鎖的な血生臭い外見をしているのです。
  • C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ

    注: 長いです。 スクリプト言語でのxUnit実装を使ったことがある方なら、テストを定義するだけでテストが実行されることが当たり前ではないでしょうか。c2.comのWikiによると、これはTest Collectorというそうです。定義したテストを自動的に集めてくる機能のことです。 一般的にTest Collectorの機能は言語が提供するリフレクション機能やメタプログラミング機能を使って実現されます。 例えば、Rubyのtest-unit 2.xでは、リフレクションを使う方法とメタプログラミングを使う方法の両方をサポートしています。リフレクションを使う方法ではObjectSpace.each_object(Class)ですべてのクラスを取得し、その中のTest::Unit::TestCaseのサブクラスを集めます。メタプログラミングを使う方法ではTest::Unit::TestCase.

    C++用xUnitでのテストの書き方 - 2009-11-07 - ククログ
    voidy21
    voidy21 2009/11/18
  • 参照はポインタと比べるべきではない - みねこあ

    協力会社のデキるプログラマを次々と切り、代わりにあまりものの正社員が投入されてしまった現在の我が開発チームのレベルは低く、殆どプログラミング専門学校のような様相を呈しています。可愛い男の子が「わかりませーん」というのは萌えますが、30台後半のおじさまが「わかりませーん」というのは殺意が沸きます。 自称 「STLは使ったこと無いけど、C++ 自体は解ってます」な方なのですが、「C++出来ます」の自己申告は危険です。たとえば、曰く、参照がわからない、ですとか。・・・・テケスタ。テケスタ。 ただ、参照には教え方にコツがあるのではないかと思いました。 Cのポインタが文法も概念も引っかき回していった後だけに、他の言語では何でもない「参照」がこんがらかりやすいのは事実です。そういう風に思い直して、こんな解説をしてみました。 * * * C++ の参照と対になるのは、ポインタではなく、通常の変数です。C

    参照はポインタと比べるべきではない - みねこあ
    voidy21
    voidy21 2009/11/17
  • C MAGAZINE - プログラミングの禁じ手Web版 C++編

    プログラミングの禁じ手Web版 C++編 /Top/今週のソースコード/プログラミングの禁じ手Web版 C++編/ [←前] [次→]  [C言語版一覧] [C++版一覧] 誌2000年7月号に掲載された「特集1 プログラミングの禁じ手 C++言語編」よりWebサイト用に抜粋したものです。ソースコードとともに公開いたします。作者の真紀俊男様に感謝します。 プログラミングで,これをやってはいけない,これをするとドツボにハマるという「禁じ手」を紹介します。C++はC言語の改良版として開発され,すでにC言語から乗り換えてうまく運営できていると喜んでいるところが多いはずなのですが,調べてみると,そうでもない,かえってトラブルが増えた,どうしてなんだ,という声も少なくありません。 果たして何がいけなかったのでしょうか? なぜうまくいかないのか,どうすればうまくいくのかを考察したいと思います。 また

    voidy21
    voidy21 2009/11/15
  • Go For C++ Programmersの勝手に和訳 — ディノオープンラボラトリ

    たかはらです。 Googleが新しいプログラム言語を発表しました。早速プログラムされている方(1 2)とか尊敬します。最近はご無沙汰ですが、C++最強説を今だに唱え続ける自分としてはGo For C++ Programmersのようなドキュメントをみるとうれしくなってしまいまして、Go For C++ Programmersの最初の”Conceptual Differences”部分を勝手に和訳しました。権利的に問題があれば削除します。 適当に訳したので致命的な誤訳はありそうです。コメント欄で指摘頂けるとありがたいです。 以下、訳となります。 GoC++のような汎用システム用のプログラム言語を目指しています。C++プログラマ向けにいくつかの注意点があります。このドキュメントでは、GoC++の違いについて説明する事であまり違わない事が判るよ。 Goのもっと一般的な紹介は、”Go tuto

    voidy21
    voidy21 2009/11/15
  • 整数の除算とシフト演算子の仕様 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    C++ の除算はどうなってるんだろう…後で調べてみよう RT @rane_hs: "割り算の結果はすべて 0 方向に切り捨てる"あとでソースを探した方がいいかも知れない : プログラミング言語 C の新機能 http://seclan.dll.jp/c99d/c99d05.htm http://twitter.com/melponn/status/5547041584 てことで気になったので調べたところ、 どうやら 0 方向に切り捨てられるらしい。 http://twitter.com/melponn/status/5547457880 ということになった。ソースは N2960 (10M PDF 注意) の 5.6.4。 For integral operands the / operator yields the algebraic quotient with any fractiona

    整数の除算とシフト演算子の仕様 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
    voidy21
    voidy21 2009/11/13
  • C/C++ から main 関数が消える日 - カタチづくり

    Windows上でデスクトップアプリを開発している身としては、そのうちC/C++でmain関数を書く人って一人もいなくなるんじゃね、と思っている。もちろん簡単なテストコードのためにはmain関数が書けるほうが便利だから全く無くなるわけじゃないんだけど、C/C++でmain関数書いて最終成果物としてリリースされる機会は、もう無くなる日は近い。 C/C++の優位性はパフォーマンスとか低位のAPIを直接叩けるとかしかない。その性能を活かすには要所要所でC/C++ネイティブコードをDLL化して呼び出せば十分で、アプリケーション全体をC/C++で書く必要は全くない。アプリ全体を構築する能力は圧倒的にC#/.NET Framewokのほうが優れている。つまりC/C++でmain関数を書く必要はなく、単にDLLとして関数をエクスポートできれば十分ってことだ。 これは純粋なC/C++の話じゃないけれど、た

    C/C++ から main 関数が消える日 - カタチづくり
    voidy21
    voidy21 2009/11/13
  • ひきぷろぐ - FC2 BLOG パスワード認証

    ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.

    voidy21
    voidy21 2009/11/13