タグ

c++に関するadvblogのブックマーク (168)

  • cppreference.com

    Function objects − hash (C++11) Swap − Type operations (C++11) Integer comparison (C++20) pair − tuple (C++11) optional (C++17) expected (C++23) variant (C++17) − any (C++17) bitset − Bit manipulation (C++20)

    advblog
    advblog 2009/01/02
  • C++0x 落穂(?)拾い

    目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 26196 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆

  • 紫ログ:C++のテストフレームワークを試食 - livedoor Blog(ブログ)

    TopCoderの為に少しやる気になってきたところで、Macでフリーで使える C++ のテストフレームワークをいくつか試してみたのでメモ。 CppUnit - C++ Port of JUnit CxxTest googletest - Google C++ Testing Framework Boost.Test CppUnitはテストの記述が若干面倒な気が。表示はシンプルで悪くない。 CxxTestはインストール方法が他と違って少し悩んだが、記述量が少なくて取っつきやすかった。 googletestは記述量が少なめで、赤と緑のカラー表示コンソールで、マクロの種類も豊富。ASSERT マクロと EXPECT マクロの対応も分かりやすい。但し、出たばかりで日語での情報が少ない。 Boost.Testは普段Boostに慣れ親しんでいるなら良いかも。マクロの種類は多め。 とりあえず、goog

    advblog
    advblog 2008/12/26
  • スタックオーバーフローのハンドリング (Stack Overflow Handling)

    作成日:2004.04.12 更新日:2006.02.19 更新記録 (2004.04.12) 3/6、 3/11、 3/13 の日記をまとめて作成。 (2004.05.07) 文章を修正。サンプルコードを追加。 (2005.01.20) alternative → alterante に修正。 (2005.02.13) 追記を記述。 (2006.02.17) linux_stack_info.cpp の実装に誤りがあったので修正。 (2006.02.19) BSD 系OS でのスタック領域情報の取得の仕方を追加 初めに C/C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。 最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。 だが、再帰や alloca を積極的に使

  • 省メモリプログラミング—メモリ制限のあるシステムのためのソフトウェアパターン集

    省メモリプログラミング—メモリ制限のあるシステムのためのソフトウェアパターン集
  • MFCのデバイスコンテキストを使う

    はじめに あなたがMFC(Microsoft Foundation Class)の初心者でグラフィック操作に興味があるならば、少なくとも基的な操作方法を理解できる体系的なチュートリアルが必要でしょう。 稿は、MFCグラフィックスに関する完璧なチュートリアルというわけにはいきませんが、とりあえず簡単なペイント操作をできるようになるために必要な最低限の情報について説明します。 どのウィンドウにも、ペイント処理に使われるデバイスコンテキストというものが関連付けられています。デバイスコンテキストとは「一連のグラフィックオブジェクトとその属性を定義する役割」と「出力に影響するグラフィックモードを定義する役割」の両方を担うオブジェクトです。ここで言う「一連のグラフィックオブジェクト」には、次のものが含まれます。 ペン 線の描画で使用 ブラシ ペイントと塗りつぶしで使用 ビットマップ 画面各部のコピ

    MFCのデバイスコンテキストを使う
    advblog
    advblog 2008/12/16
  • Maybeモナドでしりとり - Faith and Brave - C++で遊ぼう

    作ってみました。 最後と最初がつながってなかったり、最後が「ん」の文字列が入力されたらその後の処理はしません。 はこちら #include <iostream> #include <string> #include <locale> #include <shand/maybe.hpp> using namespace std; using namespace shand; inline maybe<wstring>::type last_and_first(const wstring& last) { return monad_return(last); } struct next { wstring first_; public: typedef maybe<wstring>::type result_type; next(const wstring& first) : first_(f

    Maybeモナドでしりとり - Faith and Brave - C++で遊ぼう
    advblog
    advblog 2008/12/16
  • C++WGアドホック会議終了 - Faith and Brave - C で遊ぼう

    今日はみなさん集まっていただき、ありがとうございました。 日議論した内容を元に、委員会内で日の正式なコメントを作成させていただきます。 詳細なレポート(議事録)は後日書きます。 ちなみに、2009年秋にC++0xのFCD(Final Committee Draft)が公開されるので、そのときはまたアドホック会議を開催します。 今回は金曜日開催でしたが、次回は土曜日に開催する予定です。 楽しかったです!また会いましょう!

    C++WGアドホック会議終了 - Faith and Brave - C で遊ぼう
  • ()演算子のオーバーロード - ゲームが作れるようになるまでがんばる日記

    C++では()演算子までオーバーロードできてしまう。()演算子をオーバーロードするということは新しい関数呼び出しを作っている感じ。 #include <iostream> using namespace std; class Test { int mNum; public: Test() { mNum = 0; } void operator()(int i) { mNum = i; } }; int main() { Test test; test(123); }

    ()演算子のオーバーロード - ゲームが作れるようになるまでがんばる日記
    advblog
    advblog 2008/12/14
  • new できないクラスを作りたい - ひがきの日記

    new できなかったら、どうやって使うのかって? CannotNew o; // 使える CannotNew* p = new CannotNew; // 使えない (ようにしたい) CannotNew* p = new CannotNew[3]; // 使えない (ようにしたい) スタック上に作るのはいいけど、ヒープに作るのはやめて欲しい。 C++ には演算子の多重定義というエグい機能があって、演算子を定義し直せる。 new も演算子なので多重定義できる。 class CanNew public: void* operator new(size_t sz) { return ::operator new(sz); } void* operator new[](size_t sz) { return ::operator new[](sz); } }; 多重定義する前と同じ動きをさせるには

    new できないクラスを作りたい - ひがきの日記
    advblog
    advblog 2008/12/14
  • 静的よりも無名、グローバルインスタンスよりグローバル関数 - 神様なんて信じない僕らのために

    最近、やっと意識していること。 static HogeManager hogeManager_; ではなく、 namespace { HogeManager hogeManager_; } とする。 HogeManagerは静的でありたいわけではなく、 ファイル内アクセスをしたいだけに過ぎないから正当な機能である無名名前空間を使う。 (Cだとstaticにせざるをえないけど) Hoge* hoge = HogeManager::getInstance()->create(...); ではなく、 Hoge* hoge = ::CreateHoge(..); を使う。 Hogeをつくるために、 HogeManagerのインスタンスをグローバルにする必要はない。 関数で十分。 グローバル関数は悪ではないが、 グローバル変数は悪だ、という理念に従えばこれは当然の理となる。 CreateHogeの中

    静的よりも無名、グローバルインスタンスよりグローバル関数 - 神様なんて信じない僕らのために
    advblog
    advblog 2008/12/14
  • Committee Draftへのコメント一覧 - Faith and Brave - C++で遊ぼう

    12/5(金)のC++WGアドホック会議で議論する予定の 現在出ている Committee Draft(N2798) へのコメント一覧です。 (常に最新置いておきます) C++_CDコメント一覧.pdf ちょっと見にくかったので、私が勝手に編集したものも置いておきます。 Committee Draftへのコメント.pdf CD へのコメントはまだまだ募集中です。 LessThanComparable等のNaN対応の案ください。 nested_exceptionのサンプル募集中です。 Movableラムダとかrvalue_reference_wrapperがほしい id:melpon は案ください。 constexprに再帰を許可してほしい人は動機とサンプルください。 ラムダ式をきもいと思う人は代案ください。 ちなみに、アドホック会議の残り参加枠は3人です。 更新履歴 ・2008/11/26

    Committee Draftへのコメント一覧 - Faith and Brave - C++で遊ぼう
    advblog
    advblog 2008/12/13
  • C++WGから帰宅(レポは多分明日) - ...ing logging 4.0

    皆様,お疲れ様でした. 今日ほどC++の話をしたことはこれまでありませんでした. 案の定話について行くので精一杯な感じでしたが,思い出に残る楽しい一日になりました. いつもブログ等を読ませていただいていて挨拶できなかった方が相当数いらっしゃるのが心残りではありますが,お互いネットの住民なのでこちらではこれまで以上に交流できたらいいなと思います. 今後ともよろしくお願いします. コメントの補足 会議中に,CDのraw string literalの仕様がイミフな空気になってたので,少しだけコメントさせてもらいましたが,あんまり伝わらなかったかな,と思うので改めてここに書いておきます. もし間違ってたらお教えくださいませ m(..)m まず,こういう文字列 "this is\na pen."は,raw stringでは R"[thi\ s is a pen.]"と書けます. つまり, [ と

    C++WGから帰宅(レポは多分明日) - ...ing logging 4.0
    advblog
    advblog 2008/12/13
  • はてなブログ | 無料ブログを作成しよう

    今年買った良かったかどうか分からないもの この季節になると「今年買ってよかったもの」という話題でブログもSNSも賑わうのだけど、今年に関しては買ってよかったもの以前にそもそもあんまり買い物をしなかった。 …と言うか今年に限らずここ数年を振り返っても全然大きな買い物をしていないし強烈に欲しいものも…

    はてなブログ | 無料ブログを作成しよう
  • C++ 0xの参考資料 - プログラマーの学習記録

    まだ、正式発行はされていないC++ 0xだけど、すでにドラフトは出ていて、内容的にはほぼ固まっている様子。 C++ 0xの参考資料としては、以下を参考にしています。 ・http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2652.html 大元のレポートですね。これが読めればいいのですが、あいにく英語は苦手です。 ・http://ja.wikipedia.org/wiki/C%2B%2B0x Wikipediaは便利ですね。C++ 0xについては、Wikipediaを参考にしようと思います。日語がいいよね。 ・http://d.hatena.ne.jp/faith_and_brave/ C++プログラマー、アキラ氏のblogです。ブログ読んでるんですが、正直理解できません。理解できるようにがんばります。

    C++ 0xの参考資料 - プログラマーの学習記録
  • 参照とポインタの違い - 2008-12-11 - mad日記

    科学者とあたまを書いたひとだけれども、この名前どっかで聞いた事があるなと思ったら, 昨日劇団青年座の人の講演で聞いたのだった。 「フユヒコ」という劇団青年座の公演が明日NHKで放送されるらしいです。冬彦ってのは寺田寅彦のペンネームらしい。 http://cgi4.nhk.or.jp/hensei/program/p.cgi?area=001&date=2008-12-12&ch=31&eid=9950 おもしろそうだから観てみようかな。 ところで小柴先生が同じような事を言っていたのを思い出した。このインタビューは面白い。 一流の理論家は、「自分の理論では、ここまでは使えるけれど、これから先は分からない」という適用限界をいつも意識している。ところが二流の理論家というのは、自分が名前を覚えた、あるいは、使った理論で何でもやれると思ってしまう。二流の理論家に困らされるのは、新しい実験計画が出てき

    参照とポインタの違い - 2008-12-11 - mad日記
  • MacでCやC++のリファレンス(ヘルプ)がほしいとき - 強火で進め

    MacでちょっとCやC++の関数を調べたいな?ってときに意外なことにXcodeにはリファレンスが付いてなかったりするんですよね。 まぁ、ターミナル上で man printf とか打てば出るにはでますが、 GUI派なんでターミナル立ち上げるのメンドクサイしw 英語だし ってことでちょっと良いのないかなぁ?と思って調べたところ良いのが有りました。しかもバッチリ日語です。 C/C++ リファレンス http://www.cppll.jp/cppreference/ 翻訳された方、元ページ作られた方に感謝、感謝です。

    MacでCやC++のリファレンス(ヘルプ)がほしいとき - 強火で進め
  • C++0x ラムダ式 - Faith and Brave - C++で遊ぼう

    【2015年12月24日記載 : C++11 ラムダ式の正式なまとめは、こちらのページ「C++11 ラムダ式 - cpprefjp C++語リファレンス」を参照してください】 今まではラムダ式のリビジョンが上がるたびに差分だけ書いてたので C++0xに採択されたラムダ式の解説をあらためて書きます。 【C++03までの問題点】 C++03では、関数をその場で作成する、ということができなかったため 関数を受け取るSTLアルゴリズムを使用する場合、以下のように、アルゴリズムに渡す用の関数を作成しなければなりませんでした。 struct is_even { typedef bool result_type; bool operator()(int x) const { return x % 2 == 0; } }; vector<int> v; find_if(v.begin(), v.end

    C++0x ラムダ式 - Faith and Brave - C++で遊ぼう
  • C#からC++に配列を送る方法 - ymlabのブログ

    昨日より、やっとWindows+ Cygwin-XServer and Cygwin 環境で、 Xaw+X11環境で作成された指導教官の先生が作った楽譜ソフトを動かすことができた。 しかし、自分の作ったプログラムと連携させるには、あまりにも面倒なので、 同じプログラムの中で実行できるように考えてみる。 今のプログラムはC#言語で動かしているので、X11なんて、動くわけがない。 ところがほしい情報は、数値データなので、GUIは、必要ではない。 そうなると、ただのC言語だ。 C言語をC#言語に移植することにする。 ところが、移植をしていく途中で、元データに、自己参照構造体があることを発見する。 C#言語には、ポインタの概念が隠蔽されているので、 これを、まともに実装するのは、檄大変であることに気づく。 そこで、いったん元のC言語のデータを、Visual StdioのC++言語/CLI で、 ク

    C#からC++に配列を送る方法 - ymlabのブログ
    advblog
    advblog 2008/12/13
  • C/C++ 免許制 その 2

    C/C++ 免許制はどうですか? の続き 774RR さんの書き込みより C/C++ ってカバーする分野が広い(広すぎる)ため、ある分野の専門知識は他の分野では不要なものが多いです。 俺のメイン仕事のちっこいワンチップマイコン組み込み系と πを42億桁計算する超多倍長演算と Web アプリケーションの安全性を確保するためのセキュリティ確保のためのシステムと かさなる専門知識はあまりありません。 設計と実装はある程度分けて考えられると思います。「πを42億桁計算する超多倍長演算」はどちらかというと実装面の影響が強く、「Web アプリケーションの安全性を確保するためのセキュリティ確保」は設計面での影響が強いですよね?security 上の問題が発生することはどの言語でも多いですが、C/C++ の大きな問題として他の言語に比べ実装 (coding) で問題が生じやすいというのがあると思います。

    advblog
    advblog 2008/12/13