タグ

C++に関するgomi_ningenのブックマーク (44)

  • 本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために

    かつて、ゲームプログラミングはアセンブリが主流で、8bitCPUは掛け算や割り算すらないものでした。割り算がないCPUっていつの時代だよ、っていう人たちもおりますが、ゲームボーイアドバンスに搭載されているARM7TDMIは除算の命令を持っていません。(故に除算を書くと死ぬほど遅いので、乗算で代用したりする) また、浮動小数に対する演算ユニットを持っていないハードウェアもあります。ニンテンドーDSに搭載されているARM946E-Sですら、浮動小数演算ユニットはありません。(CPUの機能としてはオプションで存在する)そのために固定小数点といった技術もあるわけですが、古くさい話です。 これらはCとC++の機能を駆使していかにパフォーマンスを出すかを余儀なくされた時代です。 さておき、最近はスマートフォンでのゲーム開発も進化しており、C++iPhoneAndroidの両方で動くということもあ

    本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために
  • Siv3D

    ゲームとメディアアートのための C++ ライブラリ「Siv3D」

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • http://www.cppll.jp/cppreference/cppstring_details.html

  • boost::regex での正規表現

    文字クラス 角カッコ([ ])で囲まれた部分は文字クラス表現となります。 角カッコで囲まれた文字は、「そのいずれかにマッチする」という意味になります。 例えば、 abc[ACD]123 という正規表現に対しては、 abcA123 abcC123 abcD123 はマッチしますが、 abcAC123 abcX123 などはマッチしません。 また、文字クラス内ではハイフン(-)を用いて「範囲」を表すことができます。 例えば、 abc[3-8]123 という正規表現に対しては abc3123 abc4123 ... abc8123 がマッチします。 さらに、ハット(^)を用いて「否定」を表すことができます。 例えば、 abc[^A-Z]123 という正規表現は文字クラス部分が「大文字のアルファベット以外」 を表現しているので、 abca123 abc%123 などがマッチしますが、 abcX12

  • C++ で正規表現を使用する - C++ プログラミング

    C++ でも C++11 規格で正規表現が標準サポートされました。 正規表現といえば文字列を効果的に判定・抽出する有名な仕組みなので、Xcode や Visual Studio でもいち早く採用されているので、多くの場面で安心して利用できます。 ただし、正規表現のパターンを書くのに相性の良い raw 文字列は Visual Studio 2012 ではサポートされていないところは残念です。 raw 文字列については raw 文字列を使ってエスケープ文字を省略する に整理してあります。

  • C++文字列 - C++のstring型について調べるも… (凍結)

    文字列にはC言語の文字列charと、C++で定義されているstringクラスがある。 char型文字列は配列と同じ性質を持つ。文字定数のラベルは文字列のアドレスとなり、関数の引数にはポインタを使用する。 例: #include <stdio.h> #include <string.h> out(char *p){ printf("%s\n",p); } main(){ char *a="JSA"; out(a); } stringクラスを使用する場合は #include <string> を指定する。ラベルはオブジェクトであるからchar型のようにポインタに注意する必要がない。 例1: /* cc -lstdc++ b.cpp */ #include <iostream> #include <string> out(string p){ cout << p << endl; } main(

  • Visual C++ 2010 で正規表現 - s-kita’s blog

    Visual C++ 2010でTR1で定義されていた正規表現がstd名前空間に取り込まれて使用できるようになったということで、試してみる。 TR1ということで、使い方はboostとほぼ同じようです。 regex_searchで、正規表現にマッチさせる #include <regex> #include <string> #include <iostream> int main() { std::regex re("[0-9]+"); std::match_results<const char *> results; if (!std::regex_search("xxx123456yyy", results, re, std::regex_constants::match_default)) { return 1; } std::cout << "prefix: " << results

    Visual C++ 2010 で正規表現 - s-kita’s blog
  • 標準Cライブラリの実装

    しばらく忙しくて放置していますが、また春頃になれば、それなりに注力できる可能性があります。もっとも、そのころになれば、JSPカーネルではなく、ASPカーネルに対応することを考えるような気もしますが...。 さて、このたび、このブログで公開しているソースコードのライセンスに関して質問を受けました。このブログは、あくまでも実装レポートで、私が実装中に考えたことや、判断に迷ったことなどを交えながら、記録を残して行けたらと思って始めたものです。現在公開されている内容も、ざっと動作は見ていますが、いろいろバグも指摘されていますし、私自身も過去の記事のバグを見つけています。 そんな感じで、まだ現状では非常に完成度は低いと考えてください。それでもよければ、あくまでも自己責任の下で、自由に利用していただいてかまいません。ただし、(合法・非合法にかかわらず)反社会的または反人道的な用途への利用だけはご遠慮く

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    gomi_ningen
    gomi_ningen 2013/10/06
    “静的メンバ変数を宣言した場合、その実体の定義をクラス定義の外側に記述しなくてはなりません。”←これ完全に忘れてた…。
  • staticなメンバ変数を正しく初期化する - 自習室

    クラスを定義して、.hと.cpp のファイルに分割する際にこれまでも何度か同じような引っかかり方をしてきた気がするのでメモ。 /*test.h*/ class test{ static int my_intarray[10]; //ここがまずい public: static void func(); }; /*test.cpp*/ #include "test.h" void test::func(){ test::my_intarray[0] = 1; } int main(){ test::func(); return 0; } /*以下略*/ のように、.h ファイルの中で具体的な領域の確保はできない。というか、「確保」という言い方自体がおかしい。なぜなら、上記の.h ファイルの中身はクラスの「定義」なのであって、インスタンスはmain中なりどっか別の場所で作られ、その際に初めてメン

    staticなメンバ変数を正しく初期化する - 自習室
  • C++技術者の見極め方 - 地が傾いて舞が舞われぬ

    「俺Java6年やってます!」とか言われても正直よく分からないっていう話をしたところ、Java技術者の方々に「こういう質問をしてみれば?」っていうアドバイスをもらったのでご紹介。 capsctrldays(2008-10-14) 咳さんの最後のコメントがかっこいい。 C++ではどういう質問すればいいんだろうか。 「Effective C++」から何を学びましたか デストラクタにvirtualをつけているクラス宣言の意図がわかりますか。 STLとBoostで難しいと思ったテンプレートは何ですか クラスAから派生したクラスBがあるときそれぞれのコンストラクタとメンバ変数の初期化順序がわかりますか(逆にクラスBのインスタンスが解放されるとき、それぞれの解放される順序がわかりますか) Singletonパターンはどうやって実装しますか コピーコンストラクタと代入演算子の宣言があり定義がないクラス

    C++技術者の見極め方 - 地が傾いて舞が舞われぬ
  • C++ の Singleton パターンを Template 化 | TM Life

    今回は, デザインパターンの中で最もポピュラーな Singleton パターンについて書こうと思います. ゲーム全体を統括するクラスや, リソースを管理するクラスなんかによく使われたりする Singleton パターンですが, staticな変数が必要になるため, どうしても実装に手間がかかります. (static変数を用意したり, getInstanceといったstaticなメソッドが必要になってくるため) そこで, 目をつけたのがテンプレートクラス. テンプレートクラス内にあるstaticなメンバ変数は, 指定されたテンプレート引数に応じて個別に作成されます. この特性を使えば, static なメンバを型だけ変えて作ることができるのだ!! 実際に作ったクラスがこちら. 学生時代に作っていたライブラリの一部を引っ張ってきただけなので, 色々とツッコミどころがありますがそのへんはご愛嬌と

  • ドメインパーキング

    blogzine.jp

  • C言語〜ゲームプログラミングの館〜

    ※ 更新履歴 ※ 2017/11/03 ・sp.8章追加 2017/10/11 ・配布しているプロジェクトをVisualStudio2017に更新(それにまつわる説明も更新) 2015/09/12 ・s.3章 Androidのようなボタンの作り方(C++) 追加 2013/09/02 ・VisualC++2012のプロジェクトを追加 2013/02/23 ・d3.5章追加 2013/02/20 ・d3.1章追加 ・d3.2章追加 ・d3.3章追加 ・d3.4章追加 2013/01/19 ・sp3章追加 ・sp4章追加 ・sp5章追加 ・sp6章追加 ・sp7章追加 2012/06/23 ・3.14章追加 2012/06/16 ・sp1節追加 ・sp2節追加 2012/02/11 ・d6節追加 2011/11/10 ・h11章追加 2011/10/31 ・s1章追加 ・s2章追加 2011/

  • 龍神録プログラミングの館

    管理人の新作ゲーム「四聖龍神録2」公開開始! ※現在はより適切な設計手法で紹介した龍神録2プログラミングの館があります。 ============================================================================ 龍神録プログラミングの館では、誰にでも龍神録(東方のようなSTG)が作れるような解説を行っています。 難しい構文は使わず、初心者にもわかり易い構文のみで紹介しているので 基的なC言語の知識と、DXライブラリの知識さえあれば、誰にでも龍神録は作れます! ゲームプログラミングの館でDXライブラリに慣れたら、今度は格的なゲームを作ってみましょう! ↓ゲーム紹介動画↓ ご存じない方は是非四聖龍神録Plusを遊んでみて下さい! 全ての章のプロジェクトを一括ダウンロードする場合はこちらをクリック ※ 配布しているプロジェクト

  • 連結リストを作る (1) | Codelogy

    コードを書き始めるまえに、簡単な設計を行いましょう。 この段階では詳細には立ち入らず、データの構造をおおまかに決定すれば十分です。(図 1) リストを構成するノード (node) はそれぞれ、自分の前後に位置するノードのアドレスをメンバ変数 m_lpPrev, m_lpNext に保持します。 (始端ノードの m_lpPrev および、終端ノードの m_lpNext はNULLとする)。 リストの体 (list) は、始端および終端ノードのアドレスを m_lpHead, m_lpTail として保持します (リストが空の場合は、m_lpHead, m_lpTail は共にNULLとする)。 だいたいの構造が決まったら、いよいよ実装を始めます。 ///////////////////////////////////////////////////////////////////////

  • Boost 数学関係ライブラリの使い方

    boost::numeric::ublas 線形代数ライブラリの使い方 連立方程式を解く・逆行列を求める DT Specials -> Boost -> boost::numeric::ublas 線形代数ライブラリの使い方 Last update : Jan. 13th, 2005 はじめに この文書は,線形演算ライブラリ boost::numeric::ublas の使い方の一部を簡単に説明したものです. どうも boost ― uBLAS については日語の説明書きがないようです.頼みの日語解説書[2]も uBLAS はたった 2 ページ.Web をあさっても私の希望にあう解説は見あたりません.仕方がないので英語のオリジナルドキュメントと格闘しました.その結果,なんとか連立1次方程式を解くことと,逆行列を求めることはできるようになったので,私と同じようなお悩みを抱えて Web を巡

  • Let's Boost

    Boost C++ Libraries の紹介サイトです。 :: by Google はじめに ご挨拶 Boost のインストール方法 参考リンク集 ニュース ◆ Version 1.42.0 と 1.41.0 対応 (2010/03/14) 新規ライブラリに関する Let's Boost のページ…: property_tree (汎用木構造型コンフィグ管理) / uuid (ユニークID生成器) ◆ RSS つけました (2009/08/28) ◆ Version 1.40.0 と 1.39.0 対応 (2009/08/28) 新規ライブラリに関する Let's Boost のページ…: Signals2 (Signal/Slotライブラリ改良版) ◆ Version 1.38.0 と 1.37.0 対応 (2009/02/22) 新規ライブラリに関する Let's Boost のペー

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。