Web 上ではフォントが崩れます. (DL 専用) Web 上で見る方は http://bit.ly/7dyNmz をどうぞ. 2009/12/12 Boost.勉強会プレゼン資料. 発表時のままの版. プレゼン発表の録画は http://bit.ly/6yjSkz です.Read less
https://github.com/faithandbrave/Shand こちらはオレオレライブラリ。 Boost.Threadのヘッダオンリー化、DateTimeライブラリ、Boost.Interprocessのラッパー、boost::optionalベースのアルゴリズムなどが含まれています。その他Boost Licenseで配布されている外部のライブラリを同梱してたりします。 old以下には、昔作ったBoostの車輪があります。Boostありきで開発するようになってからは自分でも使っていません。 https://github.com/faithandbrave/OvenToBoost Boost.Rangeの進化が遅くて待てないので、Ovenを移植してBoostに提案しようプロジェクト。 1日1機能を実装していく予定。 テストやドキュメントはまだ書いていません。 ライセンスを書き忘
2011年02月17日 exitと_exitの違い/tmpfileの削除のしくみ Linuxでのプロセスの終了処理について少し調べました。 今まであまり意識していなかったexitと_exitの違いも理解できました。 昔C言語で小さなマイコンのプログラムをしていた頃は、一度main関数を実行すると、そこから抜けることはなかったので、main関数を抜けた後のことはあまり意識することはありませんでした。 しかし、Linuxなどプロセス単位で動かす場合には、main関数を抜けた後の終了処理も理解しておく必要があると思います。 main関数とexitの関係 main関数はスタートアップルーチンから呼び出されますが、mainから戻った後にmain関数の戻り値を引数としてexitが呼び出されます。 つまり、 exit(main(argc, argv, env)); (ちなみに、mainという名前の関数は
Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった: ニュースの社会科学的な裏側 ただし手元の環境(MacBook Air 11", 1.6GHz Core 2 Duo, Win 7)は非力なので、ループ回数は 268435455回に減らしました。Cygwin環境であるせいか、Objective-C は元記事でとりざたされている結果と違い、C++ の5倍までは遅くなっていませんでした。かたや Java は C++ の2倍程度に遅くなっていて、Objective-C とはほとんど差がありませんでした。 Smalltalk はまずまずの結果といった感じでしょうか。正直、爆速を誇る商用処理系であるところの VisualWorks には、C++ とまではいかずとも Objective-C には肉薄して欲しかったところですが、前述の通り Objective-C に逃げ切ら
なお、メモリ消費量はtopコマンドで測ったので、かなり大雑把な数字だ。また、Cで同様の処理のコードを書くと、ほぼC++と同じ速度になる。 追記(2011/02/17 8:50):Rubyによるベンチマークを追加。 追記(2011/02/17 11:00):Smalltalkによるベンチマークを追加。ソースコードは「Smalltalkのtは小文字です」のループ回数を修正した。 追記(2011/02/17 16:00):Perlによるベンチマークを追加。 追記(2011/02/18 10:30):Java 1.6.0_22で実行した、Scalaによるベンチマークを追加。また、clang/llvmでC++とObjective Cの値を取り直し、改善が見られないのを確認。 追記(2011/02/18 14:30):Ruby 1.8.7によるベンチマークを追加。1.9.2との速度差については、@IT
neocomplcache にはディレクトリからファイル名を補完する機能が付いています。 それを利用して、インクルード時にヘッダーファイルの補完を行えるように neocomplcache 機能を追加して頂きました。 まさに msvc2010 に付いているアレですね。 おお、素晴らしいー。 これは、msvc2008 には出来ない芸当だ。 インクルードディレクトリを追加する場合は、g:neocomplcache_include_paths(又は path) にディレクトリを設定してください。 let g:neocomplcache_include_paths.cpp="C:/MinGW/lib/gcc/mingw32/4.5.0/include/c++,C:/boost/boost_1_45_0" @ShougoMatsu さん、休日の午前中からお付き合い頂きありがとうございました! そして次
このドキュメントの内容は、以下の通りです。 はじめに デフォルト引数とは サンプルコード コンパイルするとデフォルト引数でエラーが出る 何が悪いのか? 2020年の環境では まとめ はじめに C++言語 は、精力的に新しい機能が実装され、GNU GCCやClangなどの新しいバージョンが次々とリリースされます。次々と新しいプログラミング言語が開発され、便利なスクリプト言語が次々と登場していますが、C言語やC++言語は、いまでも根強い人気があるように思います。組み込み系で使われていたり、やはり実行速度が速い、といったメリットがあるからなのではないか、と思っています。 GNUGCCの 古い g++(コンパイラ) でコンパイルするときは、問題にならなかったけど、いつの間にかエラーになってコンパイルできなくなってしまった、というお話です。 どういうわけか、古いコンパイラを使わないといけない環境に長
Objective-Cというプログラミング言語があります。 C言語をベースにオブジェクト指向言語のSmallTalkの拡張を施した言語です。 オブジェクト指向を取り入れたC言語にC++がありますが 根本から拡張されているC++と違い Objective-Cは素のままのC言語にSmallTalkを融合させたような形を取ります。 Objective-Cは世界で2番目に美しいGUIを生み出した現AppleComputer社CEOである Steve Jobs氏がNeXTコンピュータのOSであるNeXTSTEPで採用した言語です。 NeXTSTEP自体はPC/AT互換機やHewlett Packard社のHP9000、 Sun Microsystems社のSparcStationにも移植されたようですが、残念ながら私は触れた事がありません。 現在では希にYahoo Auctionに出品されますが、
たとえば libevent のような C 言語でかかれたイベント駆動型のライブラリを C++ から使っていると、C++ のメンバ関数をコールバックとしてセットできたらうれしいことが多いですよね。以下のようにすればできます。 たとえば、コールバック関数をセットする関数の型が、 void set_foo_callback(void (*)(void* cb_arg), void* cb_arg); なら、以下のようにクラスとメンバ関数を引数にとるテンプレート関数を定義し、 template <typename T, void (T::*FUNC)()> void to_foo_callback(void* cb_arg) { T* obj = reinterpret_cast<T*>(cb_arg); (obj->*FUNC)(); }以下のように受け渡せばいい。 class K { publ
What is CppCMS? CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development. It differs from most other web development frameworks like: Python Django, Java Servlets in the following ways: It is designed and tuned to handle extremely high loads. It uses modern C++ as the primary development language in order to achieve the first goal. It is de
# 環境依存な内容な上,無駄に細かい話なので,「そういうこともあるかもねー」くらいに流しちゃってください. (追記 2011-01-11)新しい規格では std::string の Copy on Write(CoW: 書き込み時に複製)が実質禁止になるとのことです.後,gcc 4.5 の時点で CoW はやめてしまうみたいですし,「そんな時代もあった」くらいに軽く流しちゃってください.id:gintenlabo さん,コメントありがとうございます. (追記の続き)個人的には,std::string の CoW 動作は挙動が分かりにくくなるので止める方に賛成です.でも,std::vector なんかを拡張するときはどうするのかな…?コピーしてしまうのか,swap() を使うようにするのか…. (さらに追記 2011-01-11)おおっと,ムーブコンストラクタにムーブ代入演算子なんてものが…
前に http://ideone.com/7NnRj というのを書いて、その後パターンマッチとかできればうれしいなーと思ったので、そんなものを書いた。書いてるうちにぼくのかんがえたさいきょうのぱたーんまっち。という記事が先に上がってたのでこれお蔵入りかなーとか思ったけど、せっかくtraitsで拡張できるようにしたんだし公開しよう、そうしよう、というわけで公開します。ほげー 実際のところはパターンマッチというか、boost::variantっぽいものから中に入っているオブジェクトを取り出そうと試みて、取り出せなかったら次の節を試して、取り出せたらそのオブジェクトをtieで初期化させろみたいにバラす、というのを同時にやるものです。query, unwrap, unpackというtraitsがあって、説明は省略(うまくできない)。まぁcpp -E -Pでもしたあと適当に改行とか入れて読んでくださ
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
最近、数年ぶりにC++を触っているのですが、いつの間にかかなり使いやすくなっていました。まだ全容は把握できてないのですが、とりあえず印象に残った以下の項目について書いてみたいと思います。 BOOST_FOREACHとautoですっきりループ tupleで無くなる無駄な構造体 #pragma onceで楽々インクルードガード std::functionとlamda関数でコンパクトなコード typeidでリフレクション 主にC++0x周りの話だと思っていますが、勘違いしている可能性も高いです。 前置きですが、本エントリ内のコードはすべてgccの4.5.0で動作確認を行っています。(mac portのgcc45パッケージをインストールしました)。またビルド時にはc++0xの使用を明示する必要があります。 $ g++-mp-4.5 -std=c++0x main.cpp 1. BOOST_FORE
去年(http://d.hatena.ne.jp/rofi/20100417/1271519352)に引き続き今年もやりました。 長いので詳細は続きから。 今年のネタ みなさん今年の干支は何でしょうか? そうですね、みなさん大好きうさみみ年兎年ですね! ということで今年のネタはこれです! #include <stdio.h>/* q=" =;;; $a= 'us' .'a' .'c' .'c' ;; $a=~ s/c/mi/g ;print $a; exit(); q&*/ #/**/ define p(c) putc(c ,stdout ) void pr( char *s, int/* */ e) {char *t =s ;for (; *s ;++s){ /* */ switch( *s ){ case 96: if (e) p(*s);else pr (t ,1);break; /
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く