タグ

c++に関するstarsky5のブックマーク (126)

  • 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
  • Boost.Python の機能をざっと紹介してみる - moriyoshiの日記

    Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.PythonC++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、PythonC++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙

    Boost.Python の機能をざっと紹介してみる - moriyoshiの日記
  • C++構造体

    構造体って? C 言語で、いくつかの変数をひとまとまりにしたものを構造体といいます。例えば、下のように struct を使って定義します。 typedef struct Item { int code; /* 商品コード */ int name; /* 商品名 */ int price; /* 価格 */ } ITEM, *LPITEM ; 商品コードと商品名と価格を管理する場合、code, name, price の変数をそれそれ作るよりも商品( Item) でひとまとめすることでプログラムがわかりやすくなります。こういったまとまったデータをレコードともいいます。プログラムが小さいと大げさなように感じされますが、複雑になるにまし、struct のありがたみがわかります。 では C++ の構造体はというと、同じように使えます。C++ はCのソースコードをそのままコンパイルできるようになって

  • http://atnd.org/events/1839

    http://atnd.org/events/1839
  • C++で読むデザインパターン(Design Patterns read by C++)

  • はてなブログ | 無料ブログを作成しよう

    よくべたもの2023-冬 冬のよくべ。やうやう美味くなりゆく汁物……。タイトルに年を入れました。冬は年越しをまたぐので、2023扱いにするか2024扱いにするか迷ったんだけど、古来からの3月末締め4月始まりスタイルからインスパイアを受けてよくべは冬までは前年度扱いとします! シュトレ…

    はてなブログ | 無料ブログを作成しよう
  • 無為空間 |C++から見たObjective-C - カテゴリ

    無為空間 むいむい(´ω`*) Entries C++から見たObjective-C - カテゴリ タグ: C++ Objective-C 指定したクラスに、インターフェースやプロトコルに記されていないメソッドを好き勝手追加する機能。 これによって、「特定のメソッドを実装したインスタンスが要求される」場面で、既存のクラスのインスタンスを使えるようにできる。 void append10(id obj) { for(int i = 0; i < 10; i++) { [obj append:i]; } } @interface NSMutableString (Foo) - (void)append:(int)n; @end @implementation NSMutableString (Foo) - (void)append:(int)n { [self appendFormat:@"%d

  • C++ の設計と進化 - いやなブログ

    C++の設計と進化 しばらく前からのろのろ読んでいた『C++の設計と進化』を読み終えました。C++ の設計者、Bjarne Stroustrup 氏による著作です。 C++は多様なスタイルを許す C++にはCから受け継いだポインタ、構造体、マクロといった機能に加えて、リファレンス、クラス、テンプレート、例外、ネームスペースといった新たな機能が追加されています。 この結果、C++のプログラムは、昔ながらのC、クラスベースのオブジェクト指向プログラミング、テンプレートによるジェネリックプログラミング、など、さまざまなスタイルで書くことができます。これらを混在させることも可能です。 私が以前から疑問に思っていたのは、なぜ C++ はこんなにいろんな書き方ができるのか(コーディングスタイルもまちまちだし)、ということです。書の第一章にまさにその答えがありました。 C++の設計の多くの部分が、強制

  • キーワード (C++) - Wikipedia

    この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2024年8月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2024年8月) 出典検索?: "キーワード" C++ – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL 記事では、プログラミング言語C++におけるキーワードについて解説する。 記事は、あくまでC++のキーワードに焦点をあてた記事であり、C++の全体像や、C++のキーワード以外の面には立ち入らない。読者の理解の助けとなる場合は適宜、他のプログラミング言語と比較する説明は行う。 なおC++のものに限らず、キーワード(keywords)、予約語(reserve

  • やねうらお-よっちゃんイカを買いに行ったついでに家を買う男 -プログラミング名著100選(2)

    「ほげほげのプログラムが書ける」と言った場合、プログラミング言語そのものを理解しているというよりは、何かやりたいことがあって、それをプログラムとして書き起こせる、ということを意味する場合が多い。プログラミング言語の構文をいかに習得しようとも、プログラムが書けないことは多々ある。 少しでもプログラミング言語を勉強した者ならば実感しているだろうが、プログラミング言語そのものにはわずか数十のkeywordしか出てこない。せいぜい、1時間か2時間勉強すれば覚えられるはずだ。だけど、それだけでプログラムが書けるようになるわけではない。一体、何が足りないのだろうか? これにはいろんな要因があるのだが、まず「データ構造とアルゴリズム」に対する理解が不十分だということが挙げられる。 私はN.ヴィルト先生の『アルゴリズム+データ構造=プログラム』で勉強したが、このは、いまや入手困難だ。その後、このをベー

    やねうらお-よっちゃんイカを買いに行ったついでに家を買う男 -プログラミング名著100選(2)
  • Effective C++ 読書ノート

    C++ の基書のひとつ。必ずしも初めて知ったことばかりでもなかったが、非常に系統的に重点が網羅されている点では重宝する内容になっている。全体的に訳出が固めな気もするが、まあこんなものかもしれない。特筆すべきは、トピックのひとつひとつが極めて理詰めで説明されているため納得しやすく、(一部は除くが)長さもあまり長くない点である。書の帯にある「すべての C++ プログラマ必読 !」という謳い文句は事実であり、書の読む時間を惜しんで C++ を書いても、却って意味不明なバグに見舞われて時間をうのがオチである。最低限、書の扱う C++ という言語を効果的に使い落し穴にはまらないためのポイントは理解した方がいいだろう。文字通り、実戦書であり、C++ 使いを自ら任ずるならば必読書である。 とはいえ、この読書ノート化に非常に時間のかかったでもある。インターネット的にいえば不完全な状態でもど

  • http://www.nces.is.nagoya-u.ac.jp/NEXCESS/blog/index.php?itemid=106

    starsky5
    starsky5 2009/11/14
  • C++ Introduction - 11

    C++ Introduction - 11 TOP( 戻る| 目次へ| 進む ) (5)C++ のその他特徴 <参照渡し> C++ の変数には、Cにはなかった新しいタイプの変数があります。それは、 「参照型変数」と呼ばれるもので、直感的にはオブジェクトの別名を与えるも のと考えることができます。参照型変数の宣言は次のようになります。 関数の仮引数の宣言において 型指定子& 参照型変数名 仮引数以外の宣言において 型指定子& 参照型変数名 = 型指定子で指定された型の変数名; 仮引数以外の宣言では初期化しないとエラーになります。例をあげます。 (例1) int x; int &rx = x; /* rxは、x の別名を与える。 */ rx = 2; /* x に、2が代入される。 */ (例2) void func(int &rx) { /* rxは、実引数の別名を与える。*/ rx = 2

    starsky5
    starsky5 2009/11/14
    const&
  • http://www.nces.is.nagoya-u.ac.jp/NEXCESS/blog/index.php?itemid=177

    starsky5
    starsky5 2009/11/14
  • C++マニアック,オペレータのオーバーロード,operator overload,演算子のオーバーロード,演算子

    ()、関数呼び出し演算子、関数オブジェクト 演算子の表へ ページの先頭へ () は、関数呼び出しの演算子です。これをクラス定義の中でオーバーロードすると、クラスオブジェクトの後ろに () を付けて、関数呼び出しの形式で呼び出せるようになります。 まず、定義の仕方を見てみましょう。次の例では、整数の引数 iValue を取り、これを 2 倍にして返す演算子 () を定義しています。 class CManiac { public: int operator()(int iValue) { return 2 * iValue; } }; 次に、これを使う側の例を見てみましょう。 int main() { CManiac maniac; // クラスオブジェクト maniac を作成する。 int iValue = maniac(1); // 関数呼び出し演算子 () を maniac に適用する

  • ½ñɾ - ¤ä¤µ¤·¤¤(¥¤¥ó¥¿¡¼¥×¥ê¥¿|¥³¥ó¥Ñ¥¤¥é)¤Îºî¤êÊýÆþÌç : 404 Blog Not Found

    2009ǯ08·î26Æü13:30 ¥«¥Æ¥´¥ê½ñɾ/²èɾ/ÉÊɾLightweight Languages ½ñɾ - ¤ä¤µ¤·¤¤(¥¤¥ó¥¿¡¼¥×¥ê¥¿|¥³¥ó¥Ñ¥¤¥é)¤Îºî¤êÊýÆþÌç ¤ä¤µ¤·¤¤¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Îºî¤êÊýÆþÌç ¤ä¤µ¤·¤¤¥³¥ó¥Ñ¥¤¥é¤Îºî¤êÊýÆþÌç Æü¸þ½ÓÆó ¡Ö¤Õ¤Ä¤¦¤Î¥³¥ó¥Ñ¥¤¥é¤ò¤Ä¤¯¤í¤¦¡×¤ò¸¥Ëܤ¤¤¿¤À¤¤¤¿¤Î¤À¤¬¡¢¡Ö¤ä¤Ï¤êº£ÆüÆü¤Ï¤Õ¤Ä¤¦¤Î¥³¥ó¥Ñ¥¤¥é¤ò¤Õ¤Ä¤¦¤Ëºî¤í¤¦¤È¤¹¤ë¤È¡¢¤³¤ì¤¯¤é¤¤¤Õ¤Ä¤¦¤ËÆñ¤·¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤«¡×¤È¤¿¤á©¤·¤¿¤È¤³¤í¤Ç¸«¤Ä¤±¤¿Æóºý¡£ ¤¿¤·¤«¤Ë¤³¤ì¤

    ½ñɾ - ¤ä¤µ¤·¤¤(¥¤¥ó¥¿¡¼¥×¥ê¥¿|¥³¥ó¥Ñ¥¤¥é)¤Îºî¤êÊýÆþÌç : 404 Blog Not Found
  • Boost C++ライブラリ - Wikipedia

    コミュニティとしてのBoostはC++標準化委員会の委員により設立されており、現在でもその多くが構成員として留まっている。このような経緯もあり、BoostコミュニティはC++の標準化において大きな影響力を有している。実際に標準化委員会が発表した「TR1」の2/3以上がBoostライブラリを基にしている。Random, Regex, ThreadなどはいずれもC++11規格の標準ライブラリとして正式に導入・標準化されている。その後もOptionalやAnyなどがC++17規格で導入されており、影響を与え続けている。このことから、Boostは考案された新機能を標準化させる前の試験運用の場であるとも言える。 Boostで公開されるライブラリはコミュニティの公開レビューによって精選されている。Boostを使用して作成したプログラムは、商用、非商用を問わず無償のBoost Software Lice

  • C++と Pthreads でミニマルなHTTPサーバを書く - いやなブログ

    C++と Pthreads でミニマルなHTTPサーバを書く 『UNIXネットワークプログラミング』を読んでいると、自分でも何かネットワーク系の小さなプログラムを書いてみたくなりました。そこで、ミニマルなHTTPサーバを C++と Pthreads で書いてみました。 同じ著者の「詳解UNIXプログラミング」もそうだったように、今回のもほとんどすべてのページに、重要なことが書かれています(最後のほうのXTIの部分は例外かもしれませんが)。 たとえば、27章ではネットワークサーバの実装として、次の設計方針がそれぞれ検討され、実際のコード付きで解説されています。 クライアントごとに fork 事前に fork - 各プロセスで accept 事前に fork - ファイルロックで accept を保護 事前に fork - Mutex ロックで accept を保護 (PTHREAD_PRO

  • C/C++ 迷信集 | 株式会社きじねこ

    C/C++ を使うプログラマは大勢います。しかし、その多くは OJT を通して言語を学んだのではないでしょうか? 実はそこに大きな落とし穴があります。 コンピュータや工学のことをよく知らない人たちは、時代の先端を歩むプログラマには「迷信」など無関係だと信じて疑わないかも知れません。しかし、迷信や誤解はどんな世界にも常に存在しています。 というわけで、ここでは C/C++ にまつわる迷信、誤解、よくある間違いを採り上げていきます。非常に後ろ向きな企画ですが、暇つぶし気分転換に読んでみてください。もしかすると、ご自身が迷信にとらわれていたことに気付くかもしれません。 追記(2009/03/15) このコーナーでは、C/C++ にまつわる迷信、誤解、よくある間違いを扱っています。決して「迷信」だけではないのですが、タイトルにはすべて[迷信]を付けています。 これは、主に検索エンジンでタイトルを見

  • グーグル、C 向けテストツールをオープンソースで公開 - @IT

    2008/12/12 米グーグルは12月11日、C++用のテストツール「Google C++ Mocking Framework」(Google Mock)をBSDライセンスの下に、オープンソースとして公開したと発表した。Google MockはLinuxWindowsMac OS Xで使える。同社はGoogle Mockを100以上の社内プロジェクトで利用しているという。同社は5カ月前にも「Google C++ Testing Framework」(Google Test)をオープンソースで公開しており、両者を併用することでMockオブジェクトを使ったテスト駆動開発が行えるという。将来的にはGoogle MockをGoogle Test以外のテストツールでも使えるようにしていくという。 Mockオブジェクトは、プロトタイプ設計やテスト時に利用するもので、物のオブジェクトを実装する代