タグ

関連タグで絞り込む (265)

タグの絞り込みを解除

c++に関するtyruのブックマーク (593)

  • 多分、こんなんでいいはず。 - krustf の雑記

    先日書いた記事 - Singletonクラスのアクセスを簡単にマルチスレッド対応させたい - krustf の雑記 で書きましたけど、最終的に今書いてるライブラリに追加したものです。 MSVC10, boost1.44.0で動作確認しました。 #include <utility> #include <boost/thread/mutex.hpp> // マルチスレッド // ------------------------------------------- template< class T > class multi_thread_access { public: multi_thread_access( T* ) : Lock_( SingletonMutex_ ) {}; multi_thread_access( multi_thread_access&& other ) : L

    多分、こんなんでいいはず。 - krustf の雑記
  • バベル - extra - C++ - TrickLibrary

    This domain may be for sale!

  • catch - inamori’s diary

    失敗した話。 #include <string> int main() { try { throw(""); } catch(std::string e) { ; } } こんなコードで例外を捕えられませんでした。実際にはこれほど単純なコードではなかったのですが。無意識のうちにこういうコードから連想していたようです。 #include <string> #include <iostream> void print(std::string s) { std::cout << s << std::endl; } int main() { print("abc"); }

    catch - inamori’s diary
  • memologue - UNIX上でのC++ソフトウェア設計の定石 (2)

    鉄則2: シグナルハンドラで行ってよい処理を知ろう sigaction関数で登録したシグナルハンドラで行ってよい処理は非常に限定されている 次の3つの処理だけが許されている 自動変数の操作 “volatile sig_atomic_t” 型の大域変数の操作 「非同期シグナルセーフ」関数の呼び出し これ以外の処理を記述しないこと! 説明: シグナル受信時に何らかの処理を行うためには、シグナルハンドラと呼ばれる関数を用意し、それをsigaction関数でシグナル名と紐付けておけばOKです。しかし、シグナルハンドラ内で行ってよい処理は、上記の通り非常に限定されています。これを把握しないまま奔放なコードを書くと次のような現象が起き得ます: 問題1: プログラムがデッドロックする危険がある タイミングに依存する、再現困難なバグの原因となる デッドロックの発生が典型例だが、それ以外にも関数の戻り値不正

    memologue - UNIX上でのC++ソフトウェア設計の定石 (2)
  • はじめてのにき(2010-08-20)

    _ pimpl 死んじゃえというはなし http://d.hatena.ne.jp/lyrical_logical/20100819/1282232382 そういう話なんかなコレ。 pimpl 死ね死ね派として。 元の話は // header class C { public: C(); void f(); private: class CImpl; CImpl* pimpl_; }; // source class C::CImpl { public: CImpl() {} void f() { // ... } }; C::C() {} void C::f() { pimpl_->f(); } と // header class C { public: C(); virtual void f(); static C* create(); }; // source class CImpl

  • pimpl と abstract class とわたし - ろじかるんるんものがたり

    http://togetter.com/li/42968 全体的に違和感があったので、少し書きます。 yreeen: ファクトリなら機能追加を見越してバージョン番号を渡すように引き数作っとけばいいし。pimplの方が優れている部分が正直思い浮かばないんだけど何かあるんですか教えてえりゅい人! pimpl でも抽象クラスとファクトリを利用することはできます。 // header ///////////////////// class c { public: c(params); void f(); private: class c_impl; shared_ptr<c_impl> pimpl_; }; // source ///////////////////// class c::c_impl { public: ~c_impl(){} virtual void f_impl() = 0;

    pimpl と abstract class とわたし - ろじかるんるんものがたり
  • 「pimpl」のすゝめ

    @SubaruG センセが pimpl についてわかりやすくつぶやいていたのでまとめました。C++ ならでは(?)の解説ですね。

    「pimpl」のすゝめ
  • いろいろな言語のコーディング規約,スタイルガイドのリスト — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー プログラミング言語(C#,VB,PHP,C/C++PythonJavaRubyJavaScript,Objective-C)やHTMLのコーディングスタンダードを集めたリストを発見しました。日語訳があるものはできるかぎり探し出して,括弧のなかに併記して補ってあります。微妙に古いのが混じってるかな。Rubyは日発のコーディング規約がある気がする(まつもとさんの日記を見つけた)。 元記事にPerlのスタイルガイドがなかったんだけど,モダンなPerlスタイルガイドがあったら教えて欲しいです:-)。 PythonにはPEP8というコーディングスタイルガイドがあってよく読まれることは

    tyru
    tyru 2010/08/19
    けっこうどの言語でもあるんだなぁ... / PerlはPerlベストプラクティスとかか
  • C++, Development Tools, Java, Open Source, Web... the world of software development from Dr Dobb's

    I often hear a complaint that C++ code tends to be slow to compile, sometimes even taking overnight. Slow compiles were one of the motivations for exported templates, and are even listed as one of the reasons for the development of the Go language. It's a real problem, and since I'm in the C++ compiler business I get asked about this. Why is C++ compilation slow? As it's reasonable to assume that

  • gap_vector

    vector, list の問題点 STL の std::vector, std::list は扱いやすく非常に便利なコンテナだが、一長一短がある。 std::vector は、O(1) でランダムアクセス可能だが、末尾以外での1文字挿入・削除は O(N) である。 std::listは、任意箇所での1文字挿入・削除は O(1) だが、ランダムアクセス不可で、任意位置への移動は O(N) である。 末尾への挿入(push_back())はどちらも O(1) であるが、下図の測定結果をみるとわかるように list は vector の100倍程度遅い(vector: 2.375*10^(-9), list:5.375*10^(-7))。 速度計測環境:C2D(ウルフデール) 3Ghz, 4GMem, WinXP, VC9 テキストエディタ用バッファなどの様に非常に大きなサイズになる可能性のあ

  • テキストエディタ実装技術

    バグつぶしばかりやっていると飽きてくるので、目先を変えるために技術的な文書を作成し、ここで公開することにする(01/06/04)。 意見・質問・間違いのご指摘は 津田 までメールまたはツイートしてください。 新着順 「関数電卓」アプリにおける陽関数グラフ描画 (2016/10/09) mate法を用いた Numberlink 問題自動生成 (Jly-2016) Unity C# Script プログラミング 入門(Nov-2015) C/C++ プログラミング 入門(Nov-2014) JavaScript 入門(Nov-2014) C/C++ static 修飾子 入門(Oct-2014) マップクラス std::map 入門(Oct-2014) 双方向リストクラス std::list 入門(Oct-2014) cocos2d-x 3.1 KeyboardTest(Jun-2014) c

  • Named function arguments for C++

    tyru
    tyru 2010/08/17
    なるほど。クラス作って引数に渡せばいいのか / ちょっとクラス(それぞれの引数型とその基底型)を作るのが面倒そうだけどどうしても必要だったらやるかな...
  • C++の便利ツール・ライブラリ - DO++

    フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ

    C++の便利ツール・ライブラリ - DO++
  • 原文Bjarne Stroustrupへのインタビュー

    新しいプログラミング雑誌、プログラミングの魔導書 vol.1では、C++の設計者にして最初の実装者であるBjarne Stroustrupへインタビューを行った。インタビューは、英語が使われた。その英語は、日語に翻訳されて、雑誌に載せ、すでに発行されている。 しかし、翻訳というものを信用していない人もいるだろう。第一、ほかならぬ私自身でさえ、翻訳は嫌いなのだ。このたび、Bjarne Stroustrupが、自信のWebサイトで、原文を公開した。以下で落として読むことができる。 Stroustrup: Interviews Interview by Royo Ezoe C++0x from now to the release of the Standard for a new Japanese mazagine called Programmers' Grimoire. April 20

  • Type Traits - Faith and Brave - C++で遊ぼう

    Boostのソースを解析してType Traitsを作成中 労を惜しまずに作ればこうなる template <typename Type> struct is_void { enum { value = 0 }; }; template <> struct is_void<void> { enum { value = 1 }; }; でもめんどくさいので こういう簡単に特殊化できるようにするマクロを作って template <typename Type, Type Value> struct integral_constant { static const Type value = Value; typedef Type value_type; }; typedef integral_constant<bool, true> true_type; typedef integral_cons

    Type Traits - Faith and Brave - C++で遊ぼう
  • Boost tour 1_40_0

    1. Boostライブラリ一周の旅 高橋晶(Akira Takahashi) ブログ:「Faith and BraveC++で遊ぼう」 http://d.hatena.ne.jp/faith_and_brave/ Boost.勉強会 2009/12/12(Sat) 3. 日紹介するライブラリ 01.Accumulators 21.Function 41.Parameter 61.Test 02.Any 22.Function Types 42.Pointer Container 62.Thread 03.Array 23.Fusion 43.Pool 63.Timer 04.Asio 24.GIL 44.Preprocessor 64.Tokenizer 05.Assign 25.Graph 45.Property Map 65.Tribool 06.Bimap 26.Interp

    Boost tour 1_40_0
  • プログラミングの魔導書 最遅レビュー - はてなかよっ!

    http://longgate.co.jp/products.html 今更だけど,実はこんな書籍が発売していました.レビューをするする詐欺をしていて,発売1分前に記事をあげようと思ったら,なんと下宿先のネットワークがメンテナンス不足でネットに繋げなかったという状態で,まぁ言い訳なんですけど,とりあえずレビューです. すっぽすっぽ先生へのインタビュー 多分これが一番ネタになるんじゃないかなと思います.というのもいくつかの言語に触っている人からすると,こういう読み物的なものの方が楽しめたりするような?俺もWalterへのインタビュー記事とか読みたいです(チラッ boost::serialization 我らがOrangeの元になったライブラリです(多分).でも正直言語特有になっちゃってるので,実際は使うシーンが少なかったりもしますが,ちょっとしたものを書く時には便利です.後編で深い話が読める

    プログラミングの魔導書 最遅レビュー - はてなかよっ!
  • プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    ついに出ました。 株式会社ロングゲート 自分は「Chronoライブラリで考える型システム」という題で書かせて頂きました。 内容について どんな内容かというと、ChronoというC++0xで新しく入る時間ユーティリティを通じて、型システムがいかに素晴らしいかというのを語っています。6ページ弱しか無いので、サクッと読めると思います。 そもそもどうしてこのテーマにしたかというと、当初はChronoライブラリを解説する予定だったのですが、このライブラリの単位を型で表現するという方法が非常に素晴らしいので、このライブラリを例として、型について話すことしました。型について考える機会になればいいかなと思います。 ratio は万能じゃない id:bleis さんが 確かに、単位を汎用的に扱えるととても嬉しい。嬉しいんですが、ratio だけじゃ解決できない単位が身近にあるんですよね・・・*2 *2:あ、

    プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.1 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • g++ exception handling - memologue

    Code Project という有名サイトに、VC++の例外処理方法に関する記事があります (http://www.codeproject.com/cpp/Exceptionhandler.asp) が、そこにg++の例外処理方法を解説したコメントがありました。 ざっくりと次のような事を言っています(翻訳してるわけではないので詳しくは英文読んでください)。 g++は、VC++とはちょっと違うやりかたで例外処理を実装している。g++の場合、実際に例外がthrowされない限りは、try/throw/catchを使ったコードを書いてもランタイムのコストはかからない。 foo()がbar()を呼んでいて、bar()が例外を投げるとせよ。このとき、foo()はスタックに戻りアドレス*1を置いてからbar()を呼ぶ。この戻りアドレスを仮にXとする。 このときコンパイラは、 (X, 掃除コードのアドレス

    g++ exception handling - memologue
  • プログラミングの魔導書 Vol. 1のレビュー

    株式会社ロングゲート - 製品案内 プログラミング雑誌が正式に公開されたので、レビューでもする。ただし、私は常に、何事にも批判的な目を向けているので、自然とレビューも、辛口になってしまう。 Bjarne Stroustrupへのインタビュー 著者:人 私が書いた。タイトル通り、C++の設計者にして最初の実装者であるBjarne Stroustrupへのインタビュー。C++0xについてと、C++教育について論じている。 boost::serializationの紹介 前編 著者:近藤 貴俊 これもタイトル通り、Boost.Serializationの入門。 Variadic Templates お前を待っていた 著者:Egtra Variadic Templatesを使って、Win32 APIのEnum系のAPIのラッパーを作る。あまり宜しくない。まあ、斬新な実装だとは思うけどさ。Var