はみ出しRAPTの戯言

- a day after yesterday -

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

コミュニティ リンク

CString::AppendFormat

# まー、今更ですが。

自宅にある VC2003 で WTL7.5 final を入れて、新しい WTL の中身と ATL の中身を眺めていた時の話。

ATL::CString::AppendFormat() が増えていて便利ーと思った。
CString 使っていると、整形文字列を追加したいことがよくあるので、そのたびに一時オブジェクトを作って
CString::operator+=() していたので。

しかしなぜかこのメソッドが WTL7.5 になかった。
ATL に比べてこれだけ外す理由が思いつかないのだけど。

VC++6/WTL7.0 の頃は、MFC::CString に対して、WTL::CString::Append( int n ) があって優位だったのに…。

なぜ実装しなかったのかは謎だが、まぁ、WTL はオープンソースなヘッダ群なので早速、
WTL::CString::AppendFormat() を作成しました。
実際のところは、WTL::CString のメソッドを順番に呼ぶだけなのでそんなに難しくはなく。

※宣言は省略。定義だけ。なお、変数名は WTL の流儀にあわせてあります。

// [atlmisc.h]
// UDT RAPT : like ATL::CString::AppendFormat
inline BOOL __cdecl CString::AppendFormat( LPCTSTR lpszFormat, ... )
{
    ATLASSERT( _IsValidString( lpszFormat ) );
    va_list argList;
    va_start( argList, lpszFormat );
    CString string;
    BOOL bRet = string.FormatV( lpszFormat, argList );
    va_end( argList );
    operator += ( string );
    return bRet;
}
// ENDE

投稿日時 : 2006年11月24日 2:19

コメントを追加

No comments posted yet.
タイトル  
名前  
URL
コメント