directx9_error
posix_errorとwindows_errorの実装がほとんど同じなので、実装だけ共通化しました。
名前はsystem_error。まるで元に戻ったみたいですね。
今日の差分
使い方は、次の形式の特徴クラスを用意してクラステンプレートsystem_errorをインスタンス化します。
struct ErrorTraits { typedef implementation-defined value_type; static std::string message(value_type code); }; typedef system_error<ErrorTraits> Error;
これで、同様の例外クラスを簡単に作成できるようになりました。
例えば、DirectX9のエラーはこうなります。
#include <hamigaki/system/system_error.hpp> #include <windows.h> #include <dxerr9.h> struct directx9_error_traits { typedef long value_type; static std::string message(long code) { return ::DXGetErrorDescription9A(code); } }; typedef hamigaki::system::system_error<directx9_error_traits> directx9_error;
と、今日の成果は少なめです。
どうもネットの調子が悪く、作業がはかどっていません。
ADSLモデムがへたってるっぽいのでFTTHに変えようとは思っているんですが、明日以降日記を更新できないこともありそうです。