C++

Boost.Contextの微妙なところ

C++

Boost.ContextのAda移植をしてたのですが、Boost.Contextオンリーイベントに間に合わずに完全に無駄に終わってしまいました。めでたしめでたし。一応テストをパスするところまで→ https://gist.github.com/2342019 ……ただしこのエントリには全く関係ない!で…

std::stringはもっと速いはず?

http://d.hatena.ne.jp/shinichiro_h/20100823#1282563465の例は参照カウンタを活用すればstd::stringはもっと輝けるはずだ、clear();append(dir);ではなくてassign(dir);すればもっと速いんじゃないか、という実験。パターン1 void JoinFilePathStr(string …

まあそれはともかく

C++

caperのソースを見るに、「真面目にSTLやなんかにインターフェース適合させて効率や可視性に気を遣って書いたC++」と「適当に書いたC++」の乖離は酷過ぎるのではないかと思うこの頃です。 で……caperのソースは物凄い真面目に書かれていると思うのですが、真…

いつの間に匿名関数内関数がドラフトに入ったんだろう

C++

http://shinh.skr.jp/m/?date=20080212#p03 いっそ(.)にすればいいのに。 (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.) (.…

dmdを作ったDigitalMarsのdmcは果たしてコンパイル速いのか検証

C++

……するまででも無く、Delphiとbccの関係を考えたら結論は出てるような気が。 でも宿題ですんで。 ↓使ったサンプルソース http://www.kmonos.net/wlog/sub/true_mem_fun.cpp ↓使った超絶手抜き時計 uses windows; begin writeln(gettickcount); end. バッチフ…

generic.h

C++

template無しで型安全なコンテナを作るには、昔っからgeneric.hというものがあります。 詳細は「επιστημηのオブジェクト指向的日常」isbn:4881358022の付録CD-ROM収録のバックナンバー記事にありますが、ざっと抜き出すとこんな様子です。 #define name2(x, …

decltype

C++

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2105.html decltypeボツにならずに生き残ってたのかーすげー。 ……と思ったですがimportが残るわけがない(と勝手に思っている)ので、これは単に提案された予約語のリストってだけかしら。 decltype…

concept_map

C++0xの話を聞いてきました。 concept_mapという、Haskellのclassに対するinstanceで書くアダプタをusingで後から選択/交換可能というステキ機能が追加されるそうです。 仮に、++と*と比較演算子を要求するInputIteratorがあったとして、intに足りないのは*…

boost::variant(2)、と、なんとかcaperビルド通りました

やった。動いた。 --- variant.000.hpp Sun Sep 19 20:49:50 2004 +++ variant.hpp Thu Oct 19 03:19:36 2006 @@ -633,16 +633,58 @@ private: // helpers, for visitor interfa delete backup_lhs_ptr; // nothrow } +#ifdef __BORLANDC__ + template <typename LhsT> + vo</typename>…

boost::variant(1)

トラックバックをいただいたcaperをC++Builderで通すべくなんかやってるわけなんですが、boost::variantがふつーにコンパイル通らねえ。 http://bcbboost.sourceforge.net/test/1_33_1-5_8_2-0.5/cs-win32.html 対応状況としてはPassとFailが入り交じってる…

Exceptional C++

そんなわけでさっさと帰ろうとしたのですが、思い直して引き返し、隣にあったExceptional C++を開きました。 ぱっと開いたページには……operator=をswapで実装する例が。目から鱗でしたのでこっちを買ってきました。 しかし、最初に知りたかったこととは微妙…

Effective C++

私にはC++のセンスがありません。 OOPがわからないとかGPがわからないとかそういう話ではなくて*1、どういう形にしておけば、C++では嬉しい、といった話です。 Pascalならconst Size = 10; var X: array[0..Size - 1] of Integer;よりもtype Range = 1..10; …

汎用的な形

C++

ttp://d.hatena.ne.jp/w_o/20060613#p2のようなのは結局、単なるユーティリティ関数void move_logic(float &x, float &y, float &dx, float &dy);だのなんだのを各クラスのmoveから呼ぶのが一番汎用的じゃないかとか思ってたり……。Generics(親子関係がいる) …

Move Semantics

C++

舌の根も乾かぬうちから比較話をします。ごめんなさい。「そこまでするなら〜」だけは書かないように気をつけますです。 さて、Move Semanticsってなんなのかと思ってちょっと見てみたわけです。名前からしてAda2005のbuild-in-place相当の機能がC++0xにも入…

BDS2006のC++BuilderでWTL

C++

成果物はhttp://panathenaia.halfmoon.jp/alang/sample-wtlbcb.7z。 WTLは言うまでもなくMS謹製?の全部Templateでできた、中の構造丸見えのカプセル化とは逆を行くWindows用GUIライブラリです。MFCよりも評判は良さげですが、ATLを必要とするためATLを持っ…

C++0x

C++

新バージョンの年の下一桁を埋めておく文字は何故C/C++はxでAdaはyなのか、という疑問はさておき*1C++に疎い小生かなり時代遅れでC++の改定の話を知りましたのでメモを残そうとしたら、これがいつもの癖で好き勝手書いてみたくなりましたので書きます。 墓下…

C++BuilderXとIBM JDK

C++

もののついででC:\Program Files\Borland\CBuilderX\jdk1.4以下をIBMのJDKに置き換えてみたら…当たり前かもしれませんけどこれでも起動しますね…。 消費メモリはかなり増えましたが、速くなった気分です。気分。 あれ…プロジェクトを閉じられなくなったぞ…。

Eclipse vs C++BuilderX

グラデーション表示されたタブに惚れてEclipse入れてみました やっぱかっこいいなー。かっこいいって重要ですねー。 さてCDTを入れて、最初、printfで1+1を表示するだけのCソースすらビルドできずに、なにかと思えばmake.exeがPATH順でBorlandのが先でした。…

東方記憶漏

東方弾幕風のことを書くのは久しぶりですので少し紹介から。 http://www.geocities.co.jp/SiliconValley-Oakland/9951/ mkmさんが作られている弾幕シミュレーターというよりは丸ごと実行環境。私の直接の知り合いの中では最も成功したソフトと思われます。*1…

C++の設計と進化

ISBN:4797328541ちょっと立ち読んだだけですが…なにかひとこと書きたくなったのでここへ…。 各所で良書良書言われてますが…私、店先で読んでて嫌になってきたのですが…。 Cとの互換性を維持したままなんでもありの言語を作るって方向とか、Stroustrupさんの…

C++BuilderXのフォント

C++

C++のコードを書かなきゃいかんのですよ。で、家で作業するためにC++BuilderXを久しぶりに起動。…ClearTypeにどっぷり浸かっている自分に愕然。 Javaアプリ(C++BXのIDE)にClearTypeを効かせる方法ないですかねー? 効かないなら効かないで、フォント何がいい…

例外クラスを外から指定

昨日適当に書いたC++の例ではだめでした。 #include<cstdio> class exception { virtual void dummy(){} //for VMT }; void func(exception const & error) { throw error; } int main() { class a : public exception { }; try{ func(a()); }catch(a&){ std::printf</cstdio>…

遅ればせながらようやく購入

http://www.kmonos.net/pub/BoostBook/オンラインショップでも売切れるぐらいですので、地方中核都市の片隅の生協なんぞには入らないのが道理です。丸善まで行ってきました。万が一、私が本を書いたときは、表紙はもちろん背表紙もウェブに載せるぞと誓った…

C++では?

C++

C++マスターの皆様には常識なのかも知れませんが、私は知らないので試してみました。 #include using namespace std; string const m = "global"; template void A(T arg) { cout ...>bcc32 temp Borland C++ 5.6.4 for Win32 Copyright (c) 1993, 2002 Borl…

OpenCV

C++

Intelの画像処理ライブラリ。ビルドで躓いてる段階です。 やはり#includeの順番が影響するような言語はいくらメタプログラミングに強かろうが私には向いてないのかもしれません。 PentiumⅡのマシンに無理矢理VS.NET入れたのに、VC++6じゃないとコンパイル通…

半日がかりの再インストール

C++

なぜWindows2000(sp4)&VisualC++6(sp5)がいまだにデファクトスタンダードなのでしょう? どうせ私のマシンじゃないのでどうでもいいのですが。 実はVisualC++のインストールをしたのは初めてだったりします。それもMSDNのCDから。Pro版なので後でmkmさんに…