100-01-01から1年間の記事一覧

commonモジュール

概要 - 各ツールに共通の機能(ファイル・ディレクトリ操作,ツールの探索など)を提供する 場所 - BOOST_BUILD_PATH/tools/common.jam check-init-parameters rule check-init-parameters ( toolset : * ) 引数・戻り値 要調査 get-invocation-command rule…

BBv2メモ

importの要・不要 - モジュールファイルの最後尾でルールがIMPORTメインターゲットの引数に指定されているかどうかで識別可能

関数宣言・定義におけるパラメータの型

draft

動的モジュールクラス + BILによるABI互換

draft

マクロ(マクロとテンプレート,マクロの展開順序)

draft

関数内でのコンテナ生成とmove semantics

draft

sizeofハック,typeofエミュレーション,is_convertible

draft

Boost.Build v2

draft

swapの特殊化,自由関数とADL

draft

Move Semantics

draft

Move Semantics,move_ptr

draft

C++ドキュメント倉庫(未読・未整理)

hidden

関数へのポインタによるコールバックをインライン化する

関数ポインタとコールバックとインライン化と C++,特にSTLではコールバックにファンクタを使用することが推奨されています.コールバックにファンクタを用いることの利点は大きく次の2つだと思われます. コールバックがインライン化される(ただしあくまで…

CRTPの使われ方

CRTP(Curiously Reccursive Template Pattern / Curiously Reccuring Template Pattern)とは以下のように基底クラスのテンプレート引数として自分自身を代入するテクニックのことを指します. template class Base{/*.....*/}; class C : public Base{/*..…

managed C++におけるboost::functionの不具合

VC++7.1でmanaged C++を許している(マネージ拡張を有効にしている)とboost::functionが正しく機能しません.managed C++側のバグのようです. boost::function<bool (int, int)> f; f = std::less<int>(); assert(f); // managed拡張を有効にしているとassertion failureする f(1</int></bool>…

std::copyとstd::copy_backward

std::copyは入力と出力がオーバーラップしている場合,注意して使用しなければなりません.入力の前半と出力の後半がオーバーラップしてる場合のみ,std::copyが安全に使用できます.例えば以下のような場合std::copyは安全に使用できます. int a[10] = {0,…

クラステンプレートの内側にあるクラステンプレートの定義をクラススコープの外で行う

C++

クラステンプレートの中に入れ子でクラステンプレートを宣言して,クラススコープの外から内側のクラステンプレートの定義を書く書き方.関数テンプレートについても同様. template<typename T1> class C1 { template<typename T2> class C2; template<typename T2> void f(T2 arg); }; template<typename T1> te</typename></typename></typename></typename>…

std名前空間にテンプレートの特殊化を追加する

C++

多くのC++プログラマは「std名前空間には何物も追加してはならない」という認識で一致していると思うのですが,実はこれには例外が存在します.以下,標準から抜粋. 17.4.3.1 Reserved names 1 It is undefined for a C++ program to add declarations or d…

オーバーロードされた関数へのポインタ / 関数テンプレートへのポインタ

C++

STLやBoostにおいて関数ポインタを使っていると,恐らく「オーバーロードした関数へのポインタはどうやって取得するのか?」,もしくは「関数テンプレートへのポインタはどうやって取得するのか?」という問題にハマるかと思います.規格にはこれに関する記…

C++ Paranoia

C++に関する超どうでも良いこと集.実用性皆無.混ぜるな危険. 目次 お勧めのC++書籍集 お勧めのC++リンク集 C++文法一般 クラステンプレートの内側にあるクラステンプレートの定義をクラススコープの外で行う std名前空間にテンプレートの特殊化を追加する…

C++お勧め書籍

『ISO/IEC 14882-2003』 - C++の言語規格書.$18で購入可能. 『プログラミング言語C++ (アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming series)』 - バイブル.ある程度C++を使いこなしていていよいよ本格的にC++に取り組もう,そん…

C++お勧めリンク集

C++一般 This Domain Is For Sale | UBM Tech - 通称CUJ.C/C++で最大のオンラインジャーナル. Guru of the Week (GotW) Archive - Main Index Page - C++プログラミングにおける様々な問題をクイズ形式で出題している.Herb Sutter氏主宰.また,これらの…