プログラミング

バッチファイル:mpegファイルから音楽ソースの抽出

【環境】WindowsXP Pro. 便利なソフトウェアというのはたくさんありますが、よく使うもの程同じ作業を繰り返すこと、即ちルーチン処理が面倒になってきます。そのためにデスクトップやSendToにショートカットを作成したりしますが、一連の処理をまとめてやる…

SFINAEの実装バグ?

以前書いた自作ライブラリの1ツールは1週間程前にほぼ完成していたのですが、仕上げに取りかかったところ思わぬ問題に当たりました。 メタ関数クラスにおいて特定の状況でSFINAE(Substitution Failure Is Not An Error)が上手く働きません。おそらくコンパイ…

マクロ関数の引数から括弧を除く

【環境】Visual Studio.NET 2003/ WindowsXP Pro. マクロ関数はプリプロセッサメタプログラミングをするにおいて欠かせないものですがその名の通りコンパイルプロセス前に処理を行うため困る場面もあります。次の例を見てみます。 #define SOME_MACRO( x ) /…

マクロ:BOOST_NO_INT64_T

【環境】Visual Studio.NET 2003/ WindowsXP Pro. コンパイラが64bit整数型をサポートしているかどうか判別する際に便利そうなマクロがあったので記載。 関連するマクロにBOOST_HAS_LONG_LONG、BOOST_HAS_MS_INT64がありますが具体的に64bit整数型のサポート…

MSVC7.1+STLportによる大量のエラーメッセージ

【環境】Visual Studio.NET 2003/ WindowsXP Pro. どうもここんとこ大量のエラーメッセージが出るなぁと思ってググってみたところ、MSVC7.1+STLportの合わせ技で何かしらエラー(warning含む)が出た場合、stdexcept内から大量のエラーメッセージが送出される…

グローバルなoperator new/deleteのユーザー定義

【環境】Visual Studio.NET 2003/ WindowsXP Pro. グローバルスコープで標準シグニチャのoperator new/deleteを定義すれば再定義とならずグローバルなoperator new/deleteを書き換えられます。いや、書き換えられるはずなのですが実際やってみると完全に無視…

配置構文delete

【環境】Visual Studio.NET 2003/ WindowsXP Pro. 成書を読み返しているとふと疑問に思う単語を見かけた。「配置構文delete」である。配置構文newといえば自分で取得したメモリにオブジェクトを配置する構文です。 //一般的宣言 void *operator new( std::si…

パラメータのvolatile型修飾子の最適化への影響

【環境】Visual Studio.NET 2003/ WindowsXP Pro. 規格(8.3.5節 p3, "Functions")によると関数の値渡しのパラメータにconst,volatile,register型修飾子があっても生成される関数のシグニチャは同じです。 void f( int ) void f( const int ) void f( volatil…

long longに対する算術変換

【環境】Visual Studio.NET 2003/ WindowsXP Pro. まず二項演算における算術変換についてMSDNから日本語訳、適当に改訂。 演算数Aの型 演算数Bの型 変換 long double any Bをlong doubleに変換 double any Bをdoubleに変換 float any Bをfloatに変換 (*) uns…

C++のビットフィールド

【環境】Visual Studio.NET 2003/ WindowsXP Pro. Cでビットフィールドに使える宣言子ははunsigned int, signed int, intのみですが、どうもC++では整数型に拡張されているようです。ということはcharやshort、果てはlong long*1までも使えるということです…

RVO,NRVOのテスト

【環境】Visual Studio.NET 2003/ WindowsXP Pro. 折角やったので自分のためにもネタにしやすい部分を記録として残しておきます。RVO(Return Value Optimization)とは値渡しでオブジェクトを返す関数において関数内で生成され計算される一時オブジェクトを生…

プログラミング再始動(挨拶)

久々にデバッグ作業やったよ。ぐえへへへへ(喜) …さて、ここのところ色々と悩みながら設計はしてましたが、コーディングするのは本当に久しぶりです。統合開発環境を動かすのも余りに久しぶりなせいかライセンス再認証を求められた程です。(ぉ 文法知識が大…

Boostライブラリのバージョンアップのメモ

あまり時間は無いのですが景気づけにプログラムに着手しようと思い、とりあえず環境を整えるべくライブラリのアップデートをしました。Boostを1.31から1.33.1にバージョンアップしようとライブラリをビルドするもどうもシングルスレッド版が作成されない。仕…

そうだ、プログラミングしよう。

そうだ。そうだったのだ。 儂はプログラミングさえしていられれば幸せだったのだ。 なんで今まで休んでいたのか、何はともあれ始めなくてはならない。