タグ

C++に関するHoshi-KNのブックマーク (15)

  • シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 漢は黙ってシングルファイル C/C++ ライブラリですね! シングルファイル C/C++ ライブラリとは, ヘッダファイル .h ひとつだけで機能が実装されているライブラリ(もう少し条件をゆるくして .cc も含む)のことです. header-only とも言われれたりします. このあたりの元祖は nothings 先生 http://nothings.org/ ですね. 最近は github にコードをあげています. シングルファイル系のライブラリまとめ一覧もあります. シングルファイル系が便利すぎてやばいので, 自分でもいくつか作り

    シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
    Hoshi-KN
    Hoshi-KN 2015/11/29
  • Effective Modern C++の予約開始 - Faith and Brave - C++で遊ぼう

    EMC++ Exits Publishing Purgatory! - The View From Aristeia Effective Modern C++ - O'Reilly Effective Modern C++ - Amazon.co.jp Scott Meyersの著書『Effective C++』のC++11とC++14対応である『Effective Modern C++ (略称EMC++)』の予約が開始しました。発売は12月4日になっています。 副題は「42 Specific Ways to Improve Your Use of C++11 and C++14」、日語だと「C++11とC++14の使い方を改善する42の方法」といったところでしょうか。

    Effective Modern C++の予約開始 - Faith and Brave - C++で遊ぼう
    Hoshi-KN
    Hoshi-KN 2014/11/12
  • Stroustrup: C++ Style and Technique FAQ 日本語訳

    Bjarne StroustrupによるC++のスタイルとテクニックに関するFAQ オリジナル: Bjarne Stroustrup's C++ Style and Technique FAQ ここにまとめられているのは、私がよく尋ねられるC++のスタイルとテクニックに 関する質問です。もしよりよい質問や回答に対するコメントがあれば、遠慮なく私に メール(bs@research.att.com)でお知らせください。なお、ホームページを改善する ために、私はあまり時間を割けないということを心に留めておいてください。 より一般的な質問は、一般的なFAQを 参照してください。 用語や概念については、C++用語解説を 参照してください。 この文書の内容は、質問と回答をまとめただけのものであるということに注意して ください。よい教科書にみられるような、注意深く選ばれた例題と解説の代わりになる もので

    Hoshi-KN
    Hoshi-KN 2014/11/02
  • C++ Labyrinth

    オーバーロードは継承できない これは、おそらく、C++ プログラマなら誰しも驚いた経験していることであり、 もし、あなたが未経験であってこの文章を読んで知識を仕入れておいたとしても、 きっといつかは体験して驚くことになるであろう、C++ の一仕様の話である。 いささか仰々しい書き出しになったが、今回の話題は、 「基底クラスと派生クラスで同じ名前の関数が定義されていた場合、 基底クラスの関数は隠されてしまう」という、C++ の仕様のことである。 ここで、「同じ名前なら隠されるのは当り前やんか」と思ったあなたは、 ちょっと読みが甘い。「同じ名前」というのは、文字通り、 「関数名だけが一致している」 ということであって、引数など、 シグネチャを構成する他の要素は違っていても構わないのだ。 例をあげよう。 class Base { public: int foo( int x ); }; clas

    Hoshi-KN
    Hoshi-KN 2014/11/02
  • 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 のペー

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

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

    Hoshi-KN
    Hoshi-KN 2014/09/11
  • スレッドセーフという幻想と現実 - yohhoyの日記(別館)

    この記事はC++ Advent Calendar 2013の15日目にエントリしています。 内容はC++標準ライブラリとスレッドセーフに関する解説になります。 flickr / rennasverden もくじ What's スレッドセーフ? スレッドセーフという幻想 基型とデータ競合 C++標準ライブラリとデータ競合 C++標準ライブラリ:シーケンスコンテナ編 C++標準ライブラリ:連想コンテナ編 スレッドセーフ RELOADED 基的なスレッドセーフ保証 std::shared_ptr<T> std::rand() std::cout (文のみ約9000字) はじめに マルチスレッド対応の点では他言語に遅れを取っていたプログラミング言語C++ですが、C++11ではようやく標準ライブラリにスレッドサポートが追加されました。C++11スレッドサポートではスレッドクラスstd::thr

    スレッドセーフという幻想と現実 - yohhoyの日記(別館)
    Hoshi-KN
    Hoshi-KN 2013/12/17
  • 値渡しか、参照渡しか

    スタックオーバーフロー 値渡しでは、関数を呼び出すたびに、引数に渡したデータがコピーされ、スタックに積まれます。そのため、サイズの大きいデータを値渡しで渡していると、実行時にスタックが溢れてしまうことがあります。これは、C言語でもC++言語でも同様です。 コピーによるオーバーヘッド 値渡しでは、関数を呼び出すたびに、引数に渡したインスタンスのコピーが発生します。このオーバーヘッドのために、参照渡しに比べて、パフォーマンスが悪くなります。 C言語でも、サイズの大きい構造体は参照渡しとして、パフォーマンスの悪化を防ぐ、という指針が知られています。C++言語の場合は、データサイズの他に、データの複雑さも影響してきます。というのも、インスタンスのコピーが行われる際に、コピーコンストラクタが呼び出されるためです。 複雑な構造を持つクラスであれば、コピーコンストラクタに複雑なコピー処理が実装されている

    Hoshi-KN
    Hoshi-KN 2012/05/17
  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

    Hoshi-KN
    Hoshi-KN 2012/05/05
  • F-35の開発で生まれたソフト技術

    先日、政府は自衛隊の次期主力戦闘機(FX)に、米国など9カ国が共同開発中の米Lockheed Martin社製「F-35 Lightning II」を選定しました。 航空機産業は技術面で多大な波及効果があることから、FXの選定においても国内の防衛産業の基盤維持が一つの論点となっていました。ただし、今回選定が決まったF-35の場合、Eurofighter社の「Typhoon」といった他のFX候補機と比べると、国内で認められるライセンス生産の割合は低いようで、F-35調達における一つの懸念点となっているようです。 これはこれで日の製造業にとって非常に重要な問題なのですが、それとは別に筆者がF-35で思い浮かべたのが、「JSF++」です。 JSFというのは、F-35のプロジェクト発足当初の名称で「Joint Strike Fighter」の略称です。さまざまな国の多様な目的を持った戦闘機を共通

    F-35の開発で生まれたソフト技術
    Hoshi-KN
    Hoshi-KN 2012/02/12
    全体で1800万行か。携帯電話でも相当多いと思ってたけど、さすがに1800万行には敵わないな。
  • emacsでインテリセンス - NO!と言えるようになりたい

    CEDETなるものを使うとわりと簡単にできるらしいので,導入してみた. http://cedet.sourceforge.net/ ダウンロードして解凍して,コンパイルを適当に行う. $ cd cedet-1.0pre7 $ make $ pwd /path/to/cedet-1.0pre7.emacsに設定を追加 ;; CEDET (load-file "/path/to/cedet-1.0pre7/common/cedet.el") (require 'semantic-gcc) (semantic-add-system-include "/opt/local/include" 'c++-mode) (semantic-add-system-include "/opt/local/include" 'c-mode) (semantic-load-enable-gaudy-code-he

    emacsでインテリセンス - NO!と言えるようになりたい
    Hoshi-KN
    Hoshi-KN 2010/07/21
    試してみよう。
  • C++プログラマのレベル10

    レベル0 C++とかいう、Cにヘンテコな機能を付け加えた言語があることはしっているが、ワケ分からんので勉強する気にならない。 Cの何が不足なのか分からない。 C++についてググったり、入門書を読んだりしてみる。文法はCに後から無理やり付け加えた感じだ。 でも文法がわかりにくすぎる。 レベル2 vectorとか便利すぎて涙がでる。もういちいちrealloc()を呼び出さなくてもいいんだ。でもイテレーターとかいうのが、ワケ分からんので、ポインタを使っている。 構造体の中に関数を書けるのは便利かもしれない。すくなくとも、わざわざ構造体のポインタを引数に渡さなくてもいいわけだ。 レベル3 テンプレートが分からなくて挫折中。テンプレートがわかれば、STLがもっと分かるようになる気がする。でも、いい参考書が見つからない。 継承とか仮想関数も便利だと気がつく。namespaceも地味に便利だ。 レベル4

  • Emacs用の簡易C++リファレンスビューワcppref.elを作った - antipop

    C++の練習はあんまり進んでいないのだけど、がんばろうという気持ちはあります!!1という昨今ですが、id:kazuhookuさんが作成したC++リファレンスビューワであるところのcpprefが素敵な感じだったので、やっぱりEmacsで使いたいなーってんで、同じような動作をするものを書いてみました。 http://github.com/kentaro/emacs-cppref cppref.elへのパスを通したあとに(require 'cppref)と書くだけでM-x cpprefできます。プロンプトがでるので、Perl版と同様、適当に入力してみるといい感じにドキュメントを拾ってemacs-w3mで表示します。 ざっくりでっちあげただけなのでいろいろ微妙ですが、どうぞご利用ください。というか、僕がちゃんと利用するようにしよう……。

    Emacs用の簡易C++リファレンスビューワcppref.elを作った - antipop
    Hoshi-KN
    Hoshi-KN 2009/10/10
    Meadowへのインストールメモ。emacs-w3mが必要→netinstallで入手。w3mが必要→ここで051のバイナリとdllのセットを入手:http://z800.blog.shinobi.jp/Entry/522/
  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
  • constメンバ関数は重要 - Faith and Brave - C++で遊ぼう

    私は基的に、C++でソース書くときはやたらめったらconst付けます。 なぜならHaskellが好きだからです(ぇ じゃなくて、状態の変更によるバグを減らすためです。 しかし、他人が書いたソースを見てると、オブジェクトのconst操作を考えて設計されてないことが けっこうあり、Is〜とかGet〜といった名前の関数の中でメンバの状態を変更してたりします。 これはとくに、JavaやC#のようなconstメンバ関数がない言語からC++に移植するようなときに 起こりやすいのですが、C++でもconstメンバ関数の存在を知ってか知らずかconstが付いてないことが多々あります。 書籍でいうと、『Game Programming Gems』では明らかにconst操作なメンバ関数にconst付いてないですね。 C++で大きなプログラムを組む際は、元となるコード(移植元やライブラリ)がオブジェクトのco

    constメンバ関数は重要 - Faith and Brave - C++で遊ぼう
    Hoshi-KN
    Hoshi-KN 2009/07/26
  • 1